Я пытаюсь десериализовать XML, где некоторые теги с одинаковыми именами имеют разные типы xsi:
<user-defined-data-row>
<field name="entity">
<field-value xsi:type="field-text-valueType">
<value>Test</value>
</field-value>
</field>
<field name="expiry_date">
<field-value xsi:type="field-date-valueType">
<value>2001-10-07</value>
</field-value>
</field>
</user-defined-data-row>
Это легко достигается путем десериализации xml в эту модель:
[XmlRoot(ElementName = "field-value", Namespace = "http://www.crsoftwareinc.com/xml/ns/titanium/common/v1_0")]
[XmlType("field-text-valueType")]
public class Fieldvalue
{
[XmlElement(ElementName = "value", Namespace = "http://www.crsoftwareinc.com/xml/ns/titanium/common/v1_0")]
public string Value { get; set; }
}
Единственное, что отличается, это типы в XML:
тип значения текста поля
тип поля-даты-значения
Как я могу заставить класс С# интерпретировать оба типа, используя что-то вроде
[XmlType("field-text-valueType")]
РЕДАКТИРОВАТЬ: десериализация, а не сериализация