愚かな質問:ビューステートに格納するオブジェクトがあるとしましょう。私はそれをSerializableとしてマークしました。私はまた、WCFサービスで同じオブジェクトを再利用します。しかし、Webサービスは、サービスクライアントに表示する必要はなく、安全ではない内部プロパティをシリアル化して公開します。 WebサービスではなくViewStateのフィールド/プロパティのシリアル化を許可する方法はありますか? [非シリアル化]は両方からプロパティを非表示にします。 私はWebサービス用のPOCOを実装することができますが、メソッド名やオブジェクトの署名はクラス名まで変更しないようにしたいと考えていました。 方法があるかどうか不思議です。もしそうでなければ、私はViewStateのフィールドを使わずに生きるか、POCOを作成して顧客がクライアントの再実装を心配するようにしなければならないでしょう。オブジェクトのシリアル化:個々のプロパティの選択
おかげ
私が知る限り、WCFを使用してシリアル化するには、.NET 4のDataContract/DataMemberでオブジェクト/プロパティを修飾する必要はありません。私は非表示しようとしているこれらのプロパティがDataMembersとしてマークされておらず、まだシリアル化されていることを確認しています。 – Dimitri
@Dimitriそれらを含めることはなおもベストプラクティスです。 –
さて、私のシナリオは次のとおりです。DataContractとしてマークされ、DataMemberとしてマークされたプロパティを持つMyClassクラスがあります。このクラスの一部のプロパティはDataMemberとしてマークされておらず、シリアル化されていません。しかし、このクラスは、Serializableとマークされた別のクラスMyBaseClassを継承しますが、DataContractでは継承しません。この基本クラスのプロパティは、シリアル化で表示されます。したがって、DataContractとして基本クラスをデコレートし、そのプロパティをDataMembersとしてデコレートしないと、Webサービスにシリアライズしないでください。 – Dimitri