В начале года получил код dreamspark H4RQ9-QJ6FD-YJWJT-P6FVF-HGXQZ. При его вводе- сообщение что он просрочен.
|
Изучение архитектуры настроек ASP.NET
Изучение обработчиков разделов настроек
Итак, я уже описал, где следует вводить параметры, как эти параметры наследуются, как указать, к чему они относятся, и как их заблокировать. Теперь давайте рассмотрим, как используются настроечные параметры. Обработчики разделов настроек обрабатывают параметры, указанные в настроечных файлах, и делают их доступными для приложений. Обработчики разделов настроек – это классы, которые реализуют интерфейс IConfigurationSectionHandler. Данные классы интерпретируют и обрабатывают параметры из настроечного файла и возвращают объект конфигурации, основанный на этих параметрах.
Как уже было сказано ранее, обработчики разделов настроек сначала объявляются в configSections. Давайте снова посмотрим на объявление обработчика настроек.
<section name="appSettings" type="System.Configuration.NameValueFileSectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <appSettings> <add key="MyPassword" value="Secret" /> <add key="ServerIP" value="192.168.31.1" /> </appSettings>
Это объявление раздела <appSettings> настроечного файла. Данный раздел используется для хранения пар имя/значение, к которым нужно получать доступ из любого файла приложения. Данное объявление указывает настроечному файлу на класс, который будет обрабатывать этот раздел. Вот пример раздела <appSettings>, который добавляет еще две пары имя/значение.
<appSettings> <add key="MyPassword" value="Secret"> <add key="ServerIP" value="192.168.31.1"> </appSettings>
Теперь доступ к этим параметрам можно получить из приложений, что значительно облегчает отслеживание и изменение параметров, используемых на различных страницах или в приложениях. Мы знаем, где располагается объявление обработчика, но еще не увидели реального кода .NET Framework для объявления обработчика. Взглянуть на пример обработчика можно в исходном коде Microsoft Shared Source CLI Implementation (кодовое имя: Rotor), который является замечательной вещью.
![](00_04.jpg)
Следующий код – это обработчик раздела настроек для раздела <appSettings>, который называется NameValueFileSectionHandler. Я удалил из него код, не имеющий отношения к этому обсуждению.
//——————————————————––––––––––––——————————————— // <copyright file="NameValueFileSectionHandler.cs" company="Microsoft"> // // Copyright (c) 2002 Microsoft Corporation All rights reserved. // The use and distribution terms for this software are contained in the // file named license.txt, which can be found in the root of this // distribution. By using this software in any fashion, you are agreeing // to be bound by the terms of this license // You must not remove this notice, or any other, from this software. // // </copyright> //——————————————————––––––––––––——————————————— #if !LIB namespace System.Configuration { using System.IO; using System.Xml; public class NameValueFileSectionHandler : IConfigurationSectionHandler { public object Create(object parent, object configContext, XmlNode section) { object result = parent; // parse XML XmlNode fileAttribute = section.Attributes.RemoveNamedItem("file"); result = NameValueSectionHandler.CreateStatic(result, section); if (fileAttribute != null && fileAttribute.Value.Length != 0) { /* Удалено для краткости. Этот раздел будет срабатывать, если имеется свойство file="", расположенное в разделе appSettings */ } return result; } } } #endif