簡體   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