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; }