Я создал консольное приложение и файл app.config и файл Connections.config. Файл app.config имеет источник свойства connectionstring, указывающий на Connections.config
Когда я попытался прочитать строку подключения в приложении, я получаю ConfigurationErrorException
Это мой основной метод.
static void Main(string[] args)
{
var settings = ConfigurationManager.ConnectionStrings;
if (settings != null)
{
foreach (ConnectionStringSettings setting in settings)
{
Console.WriteLine(setting.ConnectionString);
}
}
}
Файл App.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings configSource="Connections.config"></connectionStrings>
</configuration>
Файл Connections.config
<?xml version="1.0" encoding="utf-8" ?>
<connectionStrings>
<add name="SQLDBConnecion"
providerName="System.Data.ProviderName"
connectionString="" />
</connectionStrings>
Здесь я заметил две вещи. Во-первых: если я укажу configSource, я не могу прочитать строку соединения (исключение throwing).
Во-вторых: если я помещаю ту же строку соединения в файл App.config и пытаюсь прочитать, тогда код работает, но получает две строки подключения (которая должна быть возвращена только той, которая является пустой строкой) Первая строка соединения - это строка соединения sqlexpress, подобная этой
data source=.\SQLEXPRESS;Integrated Security=SSPI;
AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true
вторая строка подключения, возвращающая пустую строку (это ожидается).
Я хочу прочитать строку подключения из внешнего файла, как в моем сценарии. Как это сделать? Что мне здесь не хватает?