从XML填充类对象
本文关键字:对象 填充 XML | 更新日期: 2023-09-27 18:12:12
我有一些问题下面的XML填充类,我知道如何从XML(反序列化)填充类对象,但下面的XML对我来说是棘手的。
<Header>
<To EmailType="Personal">abc@abc.com</To>
<From EmailType="Work">abc2@abc.com</From>
</Header>
如果我创建下面的类,它将只填充XML的数据部分而不是属性,
[XmlRoot(ElementName = "Header")]
public class Header
{
public Header()
{
}
[XmlElement(ElementName = "To", Form = XmlSchemaForm.Unqualified)]
public string To { get; set; }
[XmlElement(ElementName = "From", Form = XmlSchemaForm.Unqualified)]
public string From { get; set; }
}
我希望能够解析&保存属性&数据。
我假设您想要将其反序列化为:
public string ToAddress {get;set;}
public EmailType ToEmailType {get;set;} // an enum
public string FromAddress {get;set;}
public EmailType FromEmailType {get;set;}
不幸的是,这在XmlSerializer
中是不可能的。你必须有一个层次模型:
public EmailDetails To {get;set;}
public EmailDetails From {get;set;}
...
public class EmailDetails {
[XmlAttribute]
public EmailType EmailType {get;set;}
[XmlText]
public string Address {get;set;}
}
或者,您必须通过XElement
或类似的方式手动解析它。