WCF

DataContractSerializer でのシリアライズ

System.Runtime.Serialization.DataContractSerializer は、WCF のサービスを呼び出す際に、渡すデータをシリアライズするために、よく利用されています、普通のオブジェクトのシリアライズでは、余り使われていませんが、DataContractSerializer もオブジェクトのシリアライズできます。利用するために、「System.Runtime.Serialization」を「参照設定」に追加する必要があります。

public static string Serialize<T>(T obj)
{
    StringBuilder result = new StringBuilder();
    using (XmlWriter writer = XmlWriter.Create(result))
    {
        DataContractSerializer serializer = new DataContractSerializer(typeof(T));
        serializer.WriteObject(writer, obj);
    }
    return result.ToString();
}

public static T Deserialize<T>(string str)
{
    using (StringReader text = new StringReader(str))
    using (XmlReader reader = XmlReader.Create(text))
    {
        DataContractSerializer serializer = new DataContractSerializer(typeof(T));
        return (T)serializer.ReadObject(reader);
    }
}

XmlSerizlizer の利用とよく似ていますね、ただし、シリアライズ可能のオブジェクトのは必ず、下記のように、クラスとメンバーの属性を明示的に宣言する必要があります。まぁ、利用する場面はほとんどないでしょう。

[DataContract]
class Sample
{
    [DataMember]
    public string Name { get; set; }
}


フレッツ光が月額556円~【GMOとくとくBB】

コメント:



(画像の文字列を入力して下さい)

トップ   編集 凍結 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019/12/02 (月) 12:44:01 (1627d)

e[NȂECir Yahoo yV LINEf[^[Ōz500~`I
z[y[W ̃NWbgJ[h COiq@COsیI COze