将XML反序列化为对象时类的默认属性
本文关键字:默认 属性 对象 XML 反序列化 | 更新日期: 2023-09-27 18:24:47
我有一个类似这样的类。
[Serializable]
[DataContract()]
[XmlType(AnonymousType = true)]
public partial class Reference
{
//-- Constructor
public Reference() { }
//-- Properties
[DataMember]
[XmlAttribute()]
public string Type {get;set;}
[DataMember]
public string Assignor { get; set; }
[DataMember]
public string Identifier { get; set; }
[DataMember]
public string System { get; set; }
[DataMember]
public string Format { get; set; }
[DataMember]
public string Value { get; set; }
然后我得到了一些XML,我想反序列化到这个类中,它看起来是这样的。
<References>
<Reference Type="ShipmentId">SHPROD00324</Reference>
</References>
由于[XMLAttribute],它将Type属性设置为正确的,但我如何指定Reference元素(SHPROD00324)中的数据放置在我的名为Identifier的属性中?
我正在寻找的是某种方法来告诉反序列化,如果在Reference元素中指定了任何值,那么它应该取该值并在identifier属性中设置它。
提前谢谢。
致以最良好的问候Magnus
试试这个
[DataMember]
[XMLText]
public string Identifier { get; set; }
我不确定您是否可以通过属性值指定这一点,但是您的类可以实现System.Xml.Serialization.IXmlSerializable并重写ReadXml方法以根据需要自行反序列化。