none
Class Library Não lê web.config RRS feed

  • Pergunta

  • Bom dia,

    Pessoal, eu tenho uma class library que deve acessar o web.config da aplicação ASP.NET que a tem como referência e retornar 1 um valor string.

    O código da DLL (Class Library) é o seguinte:

    using System;
    using
    System.Configuration;

    namespace
    MyNameSpace.Data.WebCFG
    {
       
    public class
    DSWebConfig
        {
           
    protected static string strApp = ""
    ;
           
    protected static string strSgd = ""
    ;

           
    public
    DSWebConfig()
            {
            }
           
           
    public static string
    retAPPNAME()
            {
               
    strApp = ConfigurationSettings.AppSettings["APPNAME"
    ];
               
    return
    strApp;
            }
       
    }
    }

    E na minha aplicação ASP.NET eu faço referência a DLL gerada, neste caso MyNameSpace.Data.dll, e quando tento recuperar o valor do web.config eu recebo sempre uma string com valor null.

    Segundo os resultados que eu encontrei, uma class library não possui um arquivo de config, como app.config (se Windows Forms) ou web.config (se for ASP.NET), pois ele utiliza os arquivos de config das aplicações nas quais é referenciado, portanto, onde foi que eu me descuidei?

    E caso eu altere o meu método para retornar um valor fixo, como strApp = "teste cfg"; eu recebo o valor da string definida na class library.

    Desde de já obrigado.

    terça-feira, 29 de agosto de 2006 14:46

Respostas

  • Olá Jair,

    A DLL consegue acessar sim o web.config e o teu código aparentemente está correto, mas faltou você nos mostrar o web.config. Verifique que a chave APPNAME esteja contida dentro da seção <appSettings>. Veja:

    <?xml version="1.0" encoding="utf-8"?>

    <configuration>

    <system.web>

    <!-- Outras configurações -->

    </system.web>

    <appSettings>

    <!-- User application and configured property settings go here.-->

    <!-- Example: <add key="settingName" value="settingValue"/> -->

    <add key="APPNAME" value="asdf" />

    </appSettings>

    </configuration>

    Veja que o appSettings fica fora de <system.web>

    []

    terça-feira, 29 de agosto de 2006 15:45
  • Era exatamente o que faltava.

    No web.config não estava contido a key APPNAME.

     

    Obrigado.

    terça-feira, 29 de agosto de 2006 16:16

Todas as Respostas

  • Olá Jair,

    A DLL consegue acessar sim o web.config e o teu código aparentemente está correto, mas faltou você nos mostrar o web.config. Verifique que a chave APPNAME esteja contida dentro da seção <appSettings>. Veja:

    <?xml version="1.0" encoding="utf-8"?>

    <configuration>

    <system.web>

    <!-- Outras configurações -->

    </system.web>

    <appSettings>

    <!-- User application and configured property settings go here.-->

    <!-- Example: <add key="settingName" value="settingValue"/> -->

    <add key="APPNAME" value="asdf" />

    </appSettings>

    </configuration>

    Veja que o appSettings fica fora de <system.web>

    []

    terça-feira, 29 de agosto de 2006 15:45
  • Era exatamente o que faltava.

    No web.config não estava contido a key APPNAME.

     

    Obrigado.

    terça-feira, 29 de agosto de 2006 16:16