[英]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.config
, ConfigurationManager.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.