APP.CONFIG EM USER CONTROL
Estou com o seguinte problema: Tinha uma aplicação Windows Forms que continha uma TreeView que era populado com dados do BD. Esse formulário fazia uso de um arquivo de configuração "App.Config" para mapear algumas configurações.
Estou tentando migrar essas informações para um projeto Windows Control Library, ou seja, estou querendo criar um User Control que tenha a mesma função da aplicação citada acima. O problema é que ele simplesmente ignora o App.Config quando o projeto Windows Control Library é executado.
Alguém pode me ajudar com alguma dica? Como faço para que um projeto Windows Control Library possa interpretar o App.Config.
Fish
Para acessar no VB é só usar:
My.Settings.NomeDaPropriedade
No C#:
NomeDoProjeto.Properties.Settings.Default.NomeDaPropriedade
Fish
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="ConfigurationSection" type="System.Configuration.NameValueSectionHandler, System,Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="DatabaseAccessorSection" type="System.Configuration.NameValueSectionHandler, System,Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
<ConfigurationSection>
<add key="AssemblyPath" value="Bmf.TradingSystem.Services.Configuration.FileConfigImpl.dll"/>
<add key="ObjectType" value="Bmf.TradingSystem.Services.Configuration.FileConfigImpl"/>
</ConfigurationSection>
</configuration>
Citação:FISH escreveu:
Mordor, eu utilizo no C#. Tenho na DLL de conexão a configuração do nome da base de dados, provider etc. Quando coloquei no cliente, o sistema simplesmente não reconhece o arquivo.dll.config. Será que o problema esta no fato de eu não ter gerado um instalador e sim ter copiado a pasta release ?
Fish
Você não precisa desse arquivo, as configurações são mantidas pelo Framework, na verdade é gerado um arquivo de configuração dentro de uma pasta no diretório "Documents and Settings" que é utilizado pela aplicação. Fiz um exemplo que exibe numa aplicação Windows Forms as configurações definidas numa Class Library. Existem diversas formas de lidar com essas configurações, a mais simples é utilizando o Designer do Visual Studio que gera uma classe automaticamente, expondo todos os valores através de propriedades.
Citação:JTCAVAROLI escreveu:
Não entendi muito bem. O meu app.config contém as configurações abaixo, como faço para o meu User Control ler essas configurações.
<?xml version= 1.0 encoding= utf-8 ?>
<configuration>
<configSections>
<section name= ConfigurationSection type= System.Configuration.NameValueSectionHandler, System,Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 />
<section name= DatabaseAccessorSection type= System.Configuration.NameValueSectionHandler, System,Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 />
</configSections>
<ConfigurationSection>
<add key= AssemblyPath value= Bmf.TradingSystem.Services.Configuration.FileConfigImpl.dll />
<add key= ObjectType value= Bmf.TradingSystem.Services.Configuration.FileConfigImpl />
</ConfigurationSection>
</configuration>
Se você gerou pelo Visual Studio é só acessar pela classe My.Settings.
Dim path As String = My.Settings.AssemblyPath
é para VB.
No C# eu não estou conseguindo acessar a propriedade AssemblyPath e as outras tb. que estão no app.config.
Fish
[S67][S67][S67]
Citação:JTCAVAROLI escreveu:
Mais como faço isso dentro de um User control? O exemplo que vc. deu acima
é para VB.
No C# eu não estou conseguindo acessar a propriedade AssemblyPath e as outras tb. que estão no app.config.
Desculpe, me confundi, pensei que estava usando VB. Como é a estrutura da sua Solution? Você tem um projeto Windows Control Library e outro Windows Application juntos? Aonde está o app.config, no exe ou no projeto do controle?
Citação:FISH escreveu:
Mordor, muito obrigado pela gentileza de fazer um exemplo. Tenho encontrado dificuldade em encontrar pessoas com bom conhecimento em C# para trocar idéias e experiências. A estrutura de acesso a dados do meu sistema, foi baseado em um exemplo seu a uma outra pessoa. Eu estudei muito C# e seu exemplo a ponto de converte-lo de forma a poder utilizar qualquer base de dados, modificando apenas o provider. Utilizo os factories de providers. Sempre programei em VB6, mas ao migrar para .NET, escolhi C#. Sendo assim foram dias e dias de muito estudo, mas tudo esta dando certo. Não posso encerrar o tópico pois não fui eu que abri. Mesmo assim valeu.
Fish
[S67][S67][S67]
Agora você conseguiu acessar as configurações?
Para aplicações de acesso a dados eu passei a usar o DAAB da Enterprise Library baseada do Framework 2.0 que utliza as classes genéricas de acesso a dados dando mobilidade em relação ao banco de dados, é realmente muito bom. Aquele exemplo antigo rodava no Framework 1.1 que não possuia essas features e você tinha que escrever seu próprio provider para manter a independência do BD. http://www.codeplex.com/entlib