DataContractSerializer
クラスとメンバーをDataContract
およびDataMember
属性でマークする必要があります。ただし、私の場合、クラスは EFPocoAdapter フレームワークで自動生成され、これらの属性は存在しません。
これらの属性が存在しない状態で、DataContractSerializer を使用してすべてのメンバーのシリアル化を強制するにはどうすればよいですか?
アレクデジ より:
これは 3.5SP1 で変更されました 。
DataContractSerializer
クラスとメンバーをDataContract
およびDataMember
属性でマークする必要があります。ただし、私の場合、クラスは EFPocoAdapter フレームワークで自動生成され、これらの属性は存在しません。
これらの属性が存在しない状態で、DataContractSerializer を使用してすべてのメンバーのシリアル化を強制するにはどうすればよいですか?
アレクデジ より:
これは 3.5SP1 で変更されました 。
[Serializable] 属性でクラスをマークするだけです。シリアライズしたくないメンバーは [NonSerialized] でマークします。[Serializable] では、デフォルトですべてのフィールドがシリアル化されることに注意してください。[DataContract] では、[DataMember] でマークされたフィールドを除いて、デフォルトでシリアル化されたフィールドはありません。
それは可能だと思います。ISerializable インターフェイスを実装すると、シリアライザは属性ではなく実装を使用します。クラス [Serializable] をマークする必要があると思いますが。
属性を追加するよりも少し手間がかかりますが、機能します。