Usuário com melhor resposta
Class Library Não lê web.config

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.
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>
[]
-
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>
[]
-