何百ものプロパティを持つ約50クラスのC#クラスライブラリがあります。クラスをインスタンス化するにはしばらく時間がかかることがあります。最適化のために、サーバー上でインスタンス化し、インスタンス化されたクラスをWCFサービス経由でクライアントアプリケーションに渡すことを検討していました。WCFサービスを使用してインスタンス化されたクラスを渡す
正常に動作しているようです。しかし、私が理解しているところから、私がこれをやりたいのであれば、すべてのクラスに[DataContract]
とマークするだけでなく、すべてのプロパティを[DataMember]
とマークする必要があります。これは本当に本当ですか?これは、特にすべてのプロパティで行う必要があることを夢中に思えます。このプロセスを進むことなく、クラス全体が直列化可能であると言うだけの方法はありますか?
あなたは間違っていません - OPはおそらくパフォーマンスの方法で何かを得ることはないでしょう。しかし、これは実際に、直列化の属性を持つクラスとプロパティを装飾することについての彼の質問にはあてはまらない。 – Yuck
@Yuckは真実ですが、作成することは非常に重要なポイントです。 – kenny
待って...それは正しいように見えません。したがって、クライアントアプリケーションに次のコードがあると、オブジェクトのコンストラクタがWCFサーバーだけでなくクライアントマシンにも呼び出されるということです。クライアントマシンはコンストラクタを2度目に呼び出さずにインスタンス化されたコピーを取得するはずです。MyObject obj = null; static void WCF_SVC_GetMyObjInstCompleted(オブジェクト送信者、WCF_SVCRef.GetMyObjInstCompletedEventArgs){obj = e.Result; } – Nullqwerty