ConnectionString из файла app.config DLL имеет значение null - PullRequest
3 голосов
/ 04 сентября 2010

У меня есть библиотека классов, которая содержит допустимую строку подключения в app.config.Внутри этой библиотеки классов я хочу использовать ее с

ConfigurationManager.ConnectionStrings["NAME"].ConnectionString

. Моё приложение ASP.net 4.0 Framework ссылается на этот DDL и получает данные из него.Я хочу создать Entity Framework 4 DataContext в моем DDL с помощью ConnectionString из App.config.(Я не хочу передавать connectionString из моего приложения ASP.net в каждом отдельном методе. (Я использую ObjectDataSources))

Однако эта строка внутри моей DLL вызывает исключение NullReferenceException.

ConfigurationManager.ConnectionStrings["NAME"].ConnectionString

Как я могу исправить эту проблему?

Ответы [ 3 ]

10 голосов
/ 04 сентября 2010

У меня есть библиотека классов, которая содержит допустимая строка подключения внутри app.config

С библиотекой классов не связан файл app.config. Это приложение, потребляющее эту сборку. Поэтому вам нужно поместить строку подключения в этот файл конфигурации (если это приложение ASP.NET, это будет web.config). Таким образом, добавление файла App.config в проект библиотеки классов типов в Visual Studio не имеет смысла.

3 голосов
/ 04 сентября 2010

В этом случае вы помещаете одну и ту же <connectionStrings> запись (рассматриваемый <add>) в web.config, ConfigurationManager.ConnectionStrings вашего веб-приложения, всегда просматривая текущий config, в вашем случае это web.config.

1 голос
/ 06 июля 2018

В случае, если вы не 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. Без использования ConfigurationManager import и прочего. Единственное требование для этого, чтобы убедиться, что файл конфигурации находится рядом с DLL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...