Например, предположим, что вы хотите сохранить некоторые связанные параметры настройки, регулирующие связь с удаленным объектом, в ваших файлах web.config. Эти параметры настройки показывают информацию о местоположении, аутентификации пользователя и так далее. Хотя вы можете ввести эту информацию с помощью отдельных параметров настройки в группе <appSettings>, вы можете столкнуться с рядом проблем. Например, у вас не будет ничего, чтобы показать, какие параметры настройки являются логически связанными, что может привести к возникновению проблем, если один из них будет обновлен, а другой — нет.
Если вам не нужно заполнять информацией ограничивающую структуру раздела <appSettings>, выход можно найти очень быстро. Далее показан пример, который определяет специальный элемент <orderService>:
<orderService avallable="true" pollTimeout="0:01:00"
location="tcp://OrderComputer:8010/OrderService"/>
Как только вы создадите специальный элемент, нужно будет определить, что раздел использует элемент <section>. Этим вы зарегистрируете новый раздел и отобразите его на специальный класс данных (который впоследствии создадите). Если не выполнить этот шаг ASP.NET откажется запускать приложение, так как обнаружит нераспознанные разделы. Ниже показан весь необходимый файл web.config:
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<configSections>
<section name="orderService" type="OrderService" />
</configSections>
<orderService available="true" pollTimeout="00:01:00"
location="tcp://OrderComputer:8010/OrderService"/>
</configuration>
Затем потребуется определить класс, представляющий информацию, которую вы хотели бы извлечь. Этот класс должен быть порожден от System.Configuration.ConfigurationSection. Эту роль выполняет следующий класс OrderService. Он представляет один элемент <orderService> и предлагает три атрибута через строго типизированные свойства. Свойства отображаются на соответствующие имена атрибутов с помощью атрибута ConfigurationProperty. Они извлекаются из словаря в базовом классе через имя атрибута.
public class OrderService : ConfigurationSection
{
[ConfigurationProperty("available",
DefaultValue = false)]
public bool Available
{
get { return (bool)base["available"]; }
set { base["available"] = value; }
}
предыдущая следующая страница оглавление
230