C# 将XML反序列化为对象时类的默认属性
我有一节课看起来像这样C# 将XML反序列化为对象时类的默认属性,c#,xml-deserialization,C#,Xml Deserialization,我有一节课看起来像这样 [Serializable] [DataContract()] [XmlType(AnonymousType = true)] public partial class Reference { //-- Constructor public Reference() { } //-- Properties [DataMember] [XmlAttribute()] public string Type {get;set;}
[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; }
<References>
<Reference Type="ShipmentId">SHPROD00324</Reference>
</References>
然后我得到了一些我想反序列化到这个类中的XML,它看起来像这样
[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; }
<References>
<Reference Type="ShipmentId">SHPROD00324</Reference>
</References>
SHPROD00324
由于[XMLAttribute],它将Type属性设置为正确的,但是如何指定引用元素(SHPROD00324)中的数据放在名为Identifier的属性中呢
我要寻找的是一种告诉反序列化的方法,如果在引用元素中指定了任何值,那么它应该接受该值并在identifier属性中设置它
提前谢谢
致意
Magnus我不确定您是否可以通过属性值来指定它,但是您的类可以实现System.Xml.Serialization.IXmlSerializable并重写ReadXml方法来反序列化它自己,不管它需要什么。试试这个
[DataMember]
[XMLText]
public string Identifier { get; set; }