Как вы десериализуете xml, игнорируя разницу в типах узлов, то есть, представлен ли член как XmlElement или как XmlAttribute.
Например, у меня есть этот исходный xml
<Book>
<Title>Introduction to c#</Title>
<Publisher>John Smith</Publisher>
<Year>2012</Year>
<Book>
И я хотел бы десериализовать его, используя этот класс
public class Book
{
public string Title{ get; set; }
[XmlAttribute()]
public string Publisher{ get; set; }
[XmlAttribute()]
public string Year{ get; set; }
}
Как видите, издатель и год отмечены в классе "[XmlAttribute]", поэтому они не десериализованы.
Есть ли способ указать десериализатору игнорировать различия в том, представлен ли член как атрибут или как элемент?
Мне нужно это в универсальном преобразователе для преобразования одного типа в другой аналогичный тип
public static Type2 ConvertType1ToType2<Type1, Type2>(Type1 type1)
{
using (MemoryStream objectStream = new MemoryStream())
{
XmlSerializer type1Serializer = new XmlSerializer(typeof(Type1));
XmlSerializer type2Deserializer = new XmlSerializer(typeof(Type2));
type1Serializer.Serialize(objectStream, type1);
objectStream.Position = 0;
return (Type2)type2Deserializer.Deserialize(objectStream);
}
}