簡體   English   中英

將XML反序列化為對象時,類的默認屬性

[英]Default property for a class when deserialize XML to an object

我有一堂課,看起來像這樣。

[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]以來,它設置了正確的類型屬性,但是如何指定Reference元素(SHPROD00324)中的數據放置在名為Identifier的屬性中?

我正在尋找一種告訴反序列化的方法,如果在Reference元素中指定了任何值,則它應該采用該值並將其設置在identifier屬性中。

提前致謝。

最好的問候馬格努斯

我不確定是否可以通過屬性值指定此名稱,但是您的類可以實現System.Xml.Serialization.IXmlSerializable並重寫ReadXml方法以反序列化其自身(但需要這樣做)。

嘗試這個

[DataMember]
[XMLText]
  public string Identifier { get; set; }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM