APP.CONFIG EM USER CONTROL

JTCAVAROLI 11/04/2007 10:49:55
#211175
Pessoal,

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.
USUARIO.EXCLUIDOS 11/04/2007 11:20:11
#211189
Estou com o mesmo problema. Na realidade eu postei que meu sistema não reconhece a configuração, mas infelizmente níguém me informou. Meu sistema feito em CSHARP, só reconhece o APP.CONFIG em tempo de desenvolvimento ou seja no Visual Studio. Quando instalo no cliente, ele não reconhece. Espero que você tenha mais sorte do que eu e alguém lhe ajude.

Fish
JTCAVAROLI 11/04/2007 13:44:36
#211248
Na verdade o meu não está reconhecendo nem em ambiente de desenvolvimento. Será que é porque o projeto é um Windows Control Library?
MORDOR 11/04/2007 14:15:26
#211261
Na verdade o arquivo App.Config é utilizado apenas em ambiente de desenvolvimento, quando você compila a aplicação é criado um arquivo na pasta Debug ou Release dependendo do modo de compilação com o nome "NomeProjeto.exe.config", que você deve distribuir, é nele que ficam armazenadas as configurações da aplicação. Já em projetos do tipo Windows Control Library, as configurações são compiladas dentro da DLL, portanto não é gerado o arquivo. Use o Designer do Visual Studio nas propriedades do projeto que ele gerará todos os arquivos automaticamente.

Para acessar no VB é só usar:
My.Settings.NomeDaPropriedade

No C#:
NomeDoProjeto.Properties.Settings.Default.NomeDaPropriedade
USUARIO.EXCLUIDOS 11/04/2007 14:25:49
#211263
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
JTCAVAROLI 11/04/2007 14:59:45
#211272
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>
MORDOR 11/04/2007 15:52:51
#211295
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
JTCAVAROLI 11/04/2007 16:21:05
#211306
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.
USUARIO.EXCLUIDOS 11/04/2007 16:25:35
#211308
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]
MORDOR 11/04/2007 16:34:57
#211314
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?
MORDOR 11/04/2007 16:42:14
#211317
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



Página 1 de 2 [13 registro(s)]
Tópico encerrado , respostas não são mais permitidas