Поиск выполняется с помощью синтаксиса, схожего с синтаксисом пути. Вы не указываете корневой элемент <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