Пользовательский файл конфигурации с подэлементами вместо атрибутов - PullRequest
0 голосов
/ 20 августа 2010

Я работаю над созданием пользовательского раздела моих app.config и web.config для чтения конфигурации. Я следую коду в http://consultingblogs.emc.com/pauloreichert/archive/2005/05/31/1514.aspx для моего примера. Проблема в том, что мой файл конфигурации выглядит следующим образом:

<configSections>
    <section name="BizDays" type="Holidays.BizDaysSection, Holidays, Version=1.0.3883.29809, Culture=neutral, PublicKeyToken=null" />
</configSections>
<BizDays>
  <Holidays>
    <Holiday Name="New Years Day" Day="1" Month="1" />
    <Holiday Name="MLK Day" Month="1" DayOfWeek="1" WeekOfMonth="3" />
  </Holidays>
</BizDays>

Что я хочу, так это код:

<BizDays>
  <Holidays>
    <Holiday Name="New Years Day">
      <Day>1</Day>
      <Month>1 </Month>
    </Holiday>
    <Holiday Name="MLK Day">
      <Day>1</Day>
      <DayOfWeek>1</DayOfWeek>
      <WeekOfMonth>3</WeekOfMonth>
    </Holiday>
  </Holidays>
</BizDays>

Ни один из примеров, которые я могу найти в Интернете, не показывает, как это сделать.

1 Ответ

0 голосов
/ 20 августа 2010

Без чтения документа, с которым вы связались, имя будет правильно указано как XMLAttribute. Day, DayOfWeek и т. Д. Должны быть XMLElements.

Например, если создать экземпляр следующего класса и сериализовать его, вы получите результат, который вам нужен:

public class Holiday
{
    [XmlAttribute]
    public string Name;
    [XmlElement]
    public int Day;
    [XmlElement]
    public int Month;
}

Поскольку XmlElement является значением по умолчанию, его можно отключить.

...