2012-02-15 11 views
0

私はこのようなクラスを持っています。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; } 

は、その後、私は私がこのクラスにデシリアライズしたいいくつかのXMLを持って、それはこのようになります。

<References> 
    <Reference Type="ShipmentId">SHPROD00324</Reference> 
</References> 

そして[XMLAttribute]が、どのように私はReference要素(SHPROD00324)にあるデータは、識別子の名前、私のプロパティに配置されていることを指定することができますので、それが正しいタイププロパティを設定しますか?

私が探しているのは、参照要素に値が指定されていればその値をとり、それを識別子プロパティに設定する必要があることを逆直列化する方法です。

ありがとうございます。

敬具 マグナス

答えて

1

はトリックをしたこの

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

はいを​​試してみてください。ありがとう –

1

あなたはしかし、あなたのクラスがSystem.Xml.Serialization.IXmlSerializableを実装し、その自己をデシリアライズするReadXmlの説明メソッドをオーバーライドすることができ、属性値で、これを指定することができる場合、私はわからないんだけどしかしそれは必要です。

関連する問題