Я хочу создать структуру вроде:
<root>
<items>
<myns:a s="a"/>
<b s="a"/>
</items>
</root>
Где элементы в корне являются потомками от общего базового класса. Я просто не могу заставить его работать. Следующий фрагмент создает
<root>
<items>
<Base xsi:type="A" s="a"/>
<Base xsi:type="B" s="a"/>
</items>
</root>
[Serializable]
[XmlInclude(typeof(A))]
[XmlInclude(typeof(B))]
public class Base
{
}
[Serializable]
public class A : Base
{
public string a = "a";
}
[Serializable]
public class B : Base
{
public string b = "b";
}
[Serializable]
public class Root
{
public List<Base> items = new List<Base>();
}
Если я использую атрибут XmlType, я могу изменить имя типа xsi:, но не тег имени.
Я также хочу использовать пользовательское пространство имен для одного из тегов, но если я добавлю Namespace в XmlType, я получу сообщение об ошибке, в котором говорится, что тип не найден, и необходимо добавить XmlInclude
Полагаю, это на самом деле довольно просто, я просто не мог понять, как ..