2012-01-05 7 views
0

プロパティの種類が異なるオブジェクトを取得するとき、それぞれのオブジェクトのプロパティの型を定義し、それに応じて各プロパティを別の方法でシリアル化する必要があります。私は異なる型のオブジェクトを直列化する方法を知っていますが、このプロパティをこのメソッドで使用し、別のメソッドで使用する必要があります。ここでオブジェクトの種類の定義方法

は私のクラスの例である:

[XmlType("Person")] // define Type 

public class Person 
{ 
    [XmlElement("PropertyType")] 
    public PropertyType PropertyType { get; set; } 

    [XmlElement("ID")] 
    public string ID { get; set; } 

    [XmlElement("Name")] 
    public string Name { get; set; } 

    [XmlElement("City")] 
    public string City { get; set; } 

    [XmlElement("Age")] 
    public Dictionary<object, object> Age { get; set; } 
} 

は、ここで私はここにint型、文字列、リストのプロパティ

public static string XmlSerializeUsualTypes(Object item) {} 

をシリアライズ私は辞書のプロパティをシリアル化

public static string XmlSerializeDictionaryTypes(Object item) {} 
+0

質問が分かりません。あなたはどんな問題を抱えていますか? – Amy

+0

私はクラスPersonのオブジェクトを直列化する必要があります。これは、XML直列化では直列化できないプロパティ型のディクショナリを持つプロパティを持っているため、通常のプロパティと辞書型のプロパティを直列化するメソッドを記述しました。今私は別のメソッドと別のプロパティをシリアル化する必要がありますか?このプロパティでこのプロパティを使用する必要があるかどうかをわかりません。 – revolutionkpi

答えて

0

継承Dictionary<K,V>とを使用してIXmlSerializableインターフェイスを実装します方法。

Personオブジェクトをシリアル化するときなど) XmlSerializerIXmlSerializable を実装するプロパティに遭遇した
public class MyXmlDictionary<K, V> : Dictionary<K,V>, IXmlSerializable 
{ 
    // … implement IXmlSerializable methods here … 
} 

そのプロパティをシリアル化するためにIXmlSerializable.WriteXml(例えばMyXmlDictionary<K,V>我々の場合では、popertyのタイプに実装)を呼び出します。

+0

私はこのインターフェイスを使用し、継承辞書を持っていました。私はこの – revolutionkpi

+0

を実現するために私のコードを完成させる方法を尋ねますが、現在のメソッドのオブジェクトのプロパティをシリアル化する方法を教えてください。 – revolutionkpi

関連する問題