WCFのDataContractを使ったデータのシリアライズ

.NET Framework 3.5のWCFで用いられている種々のシリアライザの中からJSONとXMLのシリアライズについて説明します。

基本的な作業手順は以下の通りです。

  1. プロジェクト参照にSystem.Runtime.Serialization.dll, System.ServiceModel.Web.dll を追加する。
  2. シリアライズするデータを格納するクラスを作りSystem.Runtime.Serialization 名前空間内の属性をそのクラスに追加する。
  3. WCFのシリアライザのインスタンスを作りシリアライズする。

データを格納するクラスを作成する

以下のようにSystem.Runtime.Serialization 名前空間内の二つの属性をそのクラスに追加します。

データを格納するクラスはpublicなクラスとして作成、DataContract属性を付加します。

実際にデータを格納するプロパティも実際にpublicなプロパティとして、get,set両方できるようにします。(こうしないとシリアライズ、デシリアライズができません)追加したプロパティにはDataMember属性を付加します。

シリアライズ・デシリアライズ

JSONシリアライズ

DataContractで定義したクラスをシリアライズするにはDataContractJsonSerializerのWriteObjectを使います。デシリアライズル場合はDataContractJsonSerializerのReadObjectを使います。

XMLシリアライズ

JSONと違うのは、シリアライザがDataContractSerializerに変わるだけです。

CC BY-SA 4.0 This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

コメントを残す

No Code, No Life.

%d人のブロガーが「いいね」をつけました。