Опубликован: 24.01.2007 | Доступ: свободный | Студентов: 1253 / 82 | Оценка: 4.37 / 4.17 | Длительность: 14:27:00
ISBN: 978-5-94774-627-3
Лекция 9:

Создание собственных параметров

< Лекция 8 || Лекция 9: 12345

Этот класс реализует IConfigurationSectionHandler и включает единственный метод – Create. В данном методе реализован код, который интерпретирует раздел настроек. Метод Create принимает три различных параметра (см. табл. 9.1).

Таблица 9.1. Параметры метода Create
Параметр Описание
parent – object Первый объект, передаваемый в метод, содержит настроечные параметры из всех родительских разделов настроек.
configContext – object Второй передаваемый параметр – это объект HttpConfigurationContext. Он позволяет определять виртуальный путь, используемый для доступа к ресурсу.
section – XmlNode XmlNode содержит код XML раздела настроек, интерпретируемый обработчиком.

Метод Create возвращает простой объект, который преобразовывается при чтении его в приложении. Метод Create – это единственный обязательный метод для данного интерфейса.

Создание простого собственного обработчика раздела

Давайте создадим простой собственный обработчик раздела, который читает из раздела настроек единственное значение и возвращает его в приложение. Перед созданием кода обработчика раздела введите в файл machine.config или web.config приложения свой раздел настроек и объявление обработчика раздела. Ниже приведен простой раздел, используемый для примера.

<MicrosoftConfig MyHomePage="http://www.microsoft.com" />

Данный раздел включает единственный параметр, который будет считываться обработчиком. Нужно добавить раздел в <configSections>, где происходит объявление обработчика раздела настроек для этого раздела настроек. Ниже приведена запись в разделе <configSections>.

<configSections>
  <section name="MicrosoftConfig"
    type="MicrosoftConfig.CustomHandlerExample, MicrosoftConfig,
    Version=1.0.0.0, Culture=neutral,
    PublicKeyToken= a1690a5ea44bab32" />
</configSections>

Теперь раздел <MicrosoftConfig> будет обрабатываться обработчиком раздела MicrosoftConfig.CustomHandlerExample. Однако обработчик раздела все еще ничего не делает; нужно написать код, который проверяет XML раздела настроек и возвращает значения в приложение. Используя объект XmlNode, передаваемый в метод Create, вы можете прочитать значение единственного свойства раздела настроек.

C#

using System;
using System.Data;
using System.Data.SqlClient;
using System.XML;
using System.Configuration;

namespace MicrosoftConfig
{
  public class CustomHandlerExample : IConfigurationSectionHandler
  {
    public object Create(object parent, object configContext,
      XmlNode section)
    {
      string sHomePage;
      sHomePage = section.Attributes.Item[0].Value;
      return sHomePage;
    }
  }
}

VB.NET

Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports System.XML
Imports System.Configuration

Namespace MicrosoftConfig
  Public Class CustomHandlerExample
    Implements IConfigurationSectionHandler
    Public Function Create(parent As Object, configContext As _
      Object, section As XmlNode) As Object Implements _
      IConfigurationSectionHandler.Create
      Dim sHomePage As String
      sHomePage = section.Attributes.Item(0).Value
      Return sHomePage
    End Function
  End Class
End Namespace

Первая строка обработчика создает новый строковый объект для хранения значения. Вторая строка извлекает значение из объекта раздела, который передается в этот метод. Третья строка возвращает значение. Теперь, когда обработчик раздела готов, можно получить доступ к этому значению из своего приложения с помощью следующего кода.

C#

string sHomePage;
sHomePage = (string)
  ConfigurationSettings.GetConfig("MicrosoftConfig");
Response.Write("MyHomePageIs:" + sHomePage;

VB.NET

Dim sHomePage As String
sHomePage = CStr(ConfigurationSettings.GetConfig("MicrosoftConfig"))
Response.Write(("MyHomePageIs:" + sHomePage))

В результате использования метода GetConfig раздел настроек интерпретируется обработчиком раздела настроек, и в приложение возвращается строка. В следующем параграфе мы создадим более сложный раздел настроек и обработчик раздела.

< Лекция 8 || Лекция 9: 12345
Геннадий Щербаков
Геннадий Щербаков

В начале года получил код dreamspark  H4RQ9-QJ6FD-YJWJT-P6FVF-HGXQZ. При  его вводе- сообщение что он просрочен.