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】 コメント: |