Рассмотрим следующий класс:
[Serializable]
public class MyClass
{
[XmlAttribute("id")]
public int ID { get; set; }
[XmlArrayItem("User")]
public List<string> Users { get; set; }
[XmlArrayItem("Role")]
public List<string> Roles { get; set; }
}
Теперь я хочу преобразовать определение класса, чтобы получить следующий ожидаемый результат сериализации XML для экземпляра класса:
<MyClass id="123">
<Access>
<User>User A</User>
<User>User B</User>
<User>User C</User>
<Role>Role A</Role>
<Role>Role B</Role>
<Role>Role C</Role>
</Access>
</MyClass>
Более того, он должен быть десериализуемым. Я попытался применить атрибут [Xml Array("Access")]
к свойствам Users
и Roles
, но возникает InvalidOperationException
.
Было бы здорово, если бы вопрос можно было решить без реализации IXmlSerializable
.