Поиск выполняется с помощью синтаксиса, схожего с синтаксисом пути. Вы не указываете корневой элемент <configuration>, так как все разделы конфигурации содержатся в этом элементе.

Классы для каждого раздела конфигурации определяются в библиотеке классов в пространстве имен System.Web.Configuration (но не в пространстве имен System.Configuration, которое включает только те классы конфигурации, которые являются общими для всех приложений .NET). Все эти классы происходят из класса ConfigurationSection.

С помощью объекта ConfigurationSection вы можете извлекать значительное количество информации о текущем состоянии вашего приложения. Ниже показан пример, который отображает информацию о ссылаемых на данный момент сборках:

Configuration config = WebConfigurationManager.
  OpenWebConfiguration(Request.ApplicationPath);
CompilationSection compSection = (CompilationSection)config.
  GetSection(@"system.web/compilation");

foreach (AssemblyInfo assm in compSection.Assemblies)
{
  Response.Write(assm.Assembly + "<br /");
}

Вы можете также модифицировать большинство разделов конфигурации программным образом с помощью класса Configuration — ASP.NET полагается на эту функциональность на своих административных Web-страницах. Вы можете изменить значение напрямую, но должны вызывать метод Configuration.Save(), чтобы зафиксировать изменение. При модифицировании параметра настройки ASP.NET надежно обрабатывает обновление с помощью кода синхронизации, что позволяет гарантировать, что многочисленные клиенты не смогут зафиксировать изменение одновременно.

В своем коде вы, скорее всего, будете изменять параметры настройки раздела <appSettings> или раздела <connectionStrings>. Далее показан пример, который перезаписывает параметры настройки приложения, показанные ранее, таким образом, что он обновляет один из параметров настройки после его прочтения:

protected void Page_Load(object sender, EventArgs e)
{
  Configuration config = WebConfigurationManager.
    OpenWebConfiguration(Request.ApplicationPath);
  lblSiteName.Text = config.AppSettings.Settings["websiteName"].Value;
  lblWelcome.Text = config.AppSettings.Settings["welcomeMessage"].Value;
  config.AppSettings.Settings["welcomeMessage"].Value = "Welcome, again.";
  config.Save();
)

предыдущая    следующая страница   оглавление

226

Hosted by uCoz