Элемент ‹connectionStrings›
Элемент ‹connectionStrings›
В рамках .NET 2.0 файлы конфигурации приложения могут определить новый элемент, названный ‹connectionStrings›. В контексте этого элемента вы можете определять любое число пар имен и значений, которые можно будет прочитать программными средствами, используя индексатор ConfigurationManager.ConnectionStrings. Главным преимуществом этого подхода (в отличие от использования элемента ‹appSettings› и индексатора ConfigurationManager.AppSettings) является то, что в этом случае вы можете определять множество строк соединений для одного приложении в единообразном стиле.
Для примера обновите свой файл арр.config так, как показано ниже (заметьте, что каждая строка соединения здесь задается атрибутами name и connection-String, a не key и value, как в случае ‹appSettings›).
‹configuration›
‹appSettings›
‹!-- Which provider? --›
‹add key= "provider" value="System.Data.SqlClient" /›
‹/appSettings›
‹connectionStrings›
‹add name="SqlProviderPubs" connectionString="Data Source=localhost;uid=sa;pwd=;Initial Catalog=Pubs"/›
‹add name="OleDbProviderPubs" connectionString="Provider=SQLQLEDB.1;Data Source=localhost;uid=sa;pwd=;Initial Catalog=Pubs"/›
‹/connectionStrings›
‹/configuration›
Теперь обновите метод Main().
static void Main(string[] args) {
Console.WriteLine("*** Источники поставщиков данных *** ");
string dp = ConfigurationManager.AppSettings["provider"];
string cnStr = ConfigurationManager.ConnectionStrings["SqlProviderPubs"].ConnectionString;
…
}
На этой стадии нашего обсуждения вам уже должно быть ясно, как взаимодействовать с источником поставщика данных .NET 2.0 (и новым элементом ‹connectionStrings›).
Замечание. Теперь, когда вы понимаете роль источников поставщиков данных ADO.NET, в остальных примерах этой главы будут использоваться типы из System.Data.SqlClient и "жестко" закодированные строки соединений, чтобы сфокусировать ваше внимание на соответствующих более "узких" задачах обсуждения.
Исходный код. Проект DataProviderFactory размещен в подкаталоге, соответствующем главе 22.