我有一个具有这种结构的对象:
public class XMLTagDataSection
{
[XmlElement("Type", Order=1)]
public EnuDataType XML_type { get; set; }
[XmlElement("Value", IsNullable = false, Order = 2)]
public string XML_Value { get; set; }
[XmlElement("Value", IsNullable = false, Order = 3)]
public XMLTagValue Tag_Value { get; set; }
}
public class XMLTagValue
{
[XmlElement("Variable", IsNullable = false, Order = 4)]
public int Variable { get; set; }
}
生成类似的XML文件:
案例#1:
<Data>
<Offset>0</Offset>
<Type>ASCII</Type>
<Value>
<Variable>1</Variable>
</Value>
</Data>
案例#2:
<Data>
<Offset>0</Offset>
<Type>ASCII</Type>
<Value>TestString</Value>
</Data>
我的实际问题是我无法将两个不同的值标签反序列化回适当的对象。
答案 0 :(得分:0)
我自己认为不同的价值标签就像那样;
[XmlInclude(typeof(XMLTagValue)), XmlInclude(typeof(XMLValue))]
public class XMLTagDataSection
{
[XmlElement("Offset")]
public int XML_Offset { get; set; }
[XmlElement("Type")]
public EnuDataType XML_type { get; set; }
public object Tag_Value { get; set; }
}
public class XMLVariable
{
[XmlElement("Variable", IsNullable = false)]
public int Variable { get; set; }
}
public class XMLValue
{
[XmlElement("Value", IsNullable = false)]
public string XML_Value { get; set; }
}
但在这种情况下,对象Tag_Value成为XMLfile中的自有标记。 有没有办法启用xmlserializer的这种行为