Мне нужен XML в следующем формате:
<configuration><!-- Only one configuration node -->
<logging>...</logging><!-- Only one logging node -->
<credentials>...</credentials><!-- One or more credentials nodes -->
<credentials>...</credentials>
</configuration>
Я пытаюсь создать класс Configuration
с атрибутом [Serializable]
.Для сериализации узлов учетных данных у меня есть следующее:
[XmlArray("configuration")]
[XmlArrayItem("credentials", typeof(CredentialsSection))]
public List<CredentialsSection> Credentials { get; set; }
Однако, когда я сериализую это в XML, XML будет иметь следующий формат:
<configuration>
<logging>...</logging>
<configuration><!-- Don't want credentials nodes nested in a second
configuration node -->
<credentials>...</credentials>
<credentials>...</credentials>
</configuration>
</configuration>
Если я удаляю[XmlArray("configuration")]
строка, я получаю следующее:
<configuration>
<logging>...</logging>
<Credentials><!-- Don't want credentials nodes nested in Credentials node -->
<credentials>...</credentials>
<credentials>...</credentials>
</Credentials>
</configuration>
Как я могу сериализовать это так, как я хочу, с несколькими <credentials>
узлами в пределах одного корневого узла <configuration>
?Я хотел сделать это без необходимости реализовывать IXmlSerializable
и выполнять пользовательскую сериализацию.Вот как описывается мой класс:
[Serializable]
[XmlRoot("configuration")]
public class Configuration : IEquatable<Configuration>