2012-03-02 13 views
0

要素の属性を親クラス/構造体のメンバーにマップする可能性があるかどうかを知っていますか?要素としてのマッピング要素の属性は可能ですか?

例:

<parent> 
    <child id="1"> 
</parent> 

私はそれがこのように直接マップしたいと思います:事前に

public class parent 
{ 
    public int id; 
} 

おかげ

アップデート: 私は、はっきりとそれを指定していません私はXmlSerializerを使用できるソリューション属性ベースのソリューションを探しています。

+0

親は常に正確に1人の子供を持っていますか?私の場合は –

+0

はい。 – Yakeen

答えて

0

独自のIXmlSeriazliableインターフェイスを実装する必要があります。

http://msdn.microsoft.com/en-us/library/system.xml.serialization.ixmlserializable.aspx

ここで、粗例です:

public class parent : IXmlSerializable 
    { 
     public int id { get; set; } 

     public XmlSchema GetSchema() 
     { 
      throw new NotImplementedException(); 
     } 

     public void ReadXml(XmlReader reader) 
     { 
      while (reader.Read()) 
      { 
       if (reader.Name == "child") 
       { 
        int parseValue; 
        int.TryParse(reader.Value, out parseValue); 
        this.id = parseValue; 
       } 
      } 
     } 

     public void WriteXml(XmlWriter writer) 
     { 
      writer.WriteStartElement("parent"); 
      writer.WriteStartElement("child"); 
      writer.WriteAttributeString("id", this.id.ToString()); 
      writer.WriteEndElement(); 
      writer.WriteEndElement();     
     } 
    } 

これは、XmlSerializerをで動作するはずです。

+0

チップのおかげで、私はさらに複雑なケースを解決することができます – Yakeen

関連する問題