繁体   English   中英

来自DLL的app.config的ConnectionString为null

[英]ConnectionString from app.config of a DLL is null

我有一个类库,在app.config中包含一个有效的connectionString。 在那个类库里面我想用它

ConfigurationManager.ConnectionStrings["NAME"].ConnectionString

我的ASP.net 4.0框架应用程序引用DDL并从中检索数据。 我想在我的DDL中使用App.config中的ConnectionString创建一个Entity Framework 4 DataContext。 (我不想在每个方法中从我的ASP.net应用程序传递connectionString。(我正在使用ObjectDataSources))

但是,我的DLL中的这一行会抛出NullReferenceException。

ConfigurationManager.ConnectionStrings["NAME"].ConnectionString

我该如何解决这个问题?

我有一个类库,在app.config中包含一个有效的connectionString

类库没有关联的app.config文件。 这是使用此程序集的应用程序。 所以你需要将连接字符串放在这个配置文件中(如果这是一个ASP.NET应用程序,那将是web.config )。 因此,在Visual Studio中类型类库的项目中添加App.config文件是没有意义的。

在这种情况下,您将相同的<connectionStrings>条目 (有问题的<add> )放在Web应用程序的web.configConfigurationManager.ConnectionStrings始终查看当前配置,这是您的案例中的web.config。

如果你不waana使用ConfigurationManager

如果我假设配置文件是mydll.dll.config我可以将其加载为XElement并使用Linq解析它

var xe = XElement.Load("mydll.dll.config");
var connectionString = xe.Descendants("connectionStrings")
     .Elements("add")
     .FirstOrDefault(a => a.Attribute("name").Value == Name)
     .Attribute("connectionString").Value;

其中Name是XML中的connectionString名称。 不使用ConfigurationManager导入和其他东西。 唯一的要求是确保配置文件位于dll旁边。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM