这是我的 DTO
[XmlTypeAttribute(TypeName="XAttributes")]
public class XAttributes
{
[XmlArray(ElementName="Attributes")]
[XmlArrayItem(ElementName="Attribute")]
public List<Attribute> Attributes { get; set; }
public XAttributes()
{
Attributes = new List<Attribute>();
}
}
public class Attribute
{
[XmlElement(ElementName = "Name")]
public string Name { get; set; }
[XmlElement(ElementName = "Value")]
public string Value { get; set; }
[XmlElement(ElementName = "ValueType")]
public ValueType ValueType {get; set; }
[XmlArray(ElementName="Children" )]
public List<Attribute> Children { get; set; }
}
这是我的反序列化代码
public static T ToObject<T>(this string XMLData)
{
var s = new XmlSerializer(typeof(T));
object obj=null;
using (var sr = new StringReader(XMLData))
{
obj = s.Deserialize(sr);
}
return (T)obj;
}
这是我调用来反序列化它的代码
string attr = @"<XAttributes><Attributes>
<Attribute>
<Name>Test</Name>
<Value>TestVlau</Value>
<ValueType>STRING</ValueType>
<Children/>
</Attribute>
<Attribute>
<Name>Test1</Name>
<Value>TestVlau1</Value>
<ValueType>STRING</ValueType>
<Children/>
</Attribute>
</Attributes><XAttributes>";
var attribute = attr.ToObject<XAttributes>();
我得到错误
There is an error in XML document (14, 55).
在线
obj = s.Deserialize(sr);
任何帮助是极大的赞赏。
谢谢。