2011-07-01 17 views
3

いくつかの複合型パラメータを受け入れて返すWCFサービスをクライアントアプリケーションが使用しています。これらの複合型は、クライアントアプリケーションとWCFサービスの両方が参照している別のアセンブリに保持されています。 クライアントアプリケーションでサービス参照を追加すると、生成された参照クラスが複雑なパラメータしたがって、元の型が定義されているアセンブリの型を渡すことはできません。 これはすべてわかりません。サービス参照複合型

質問です。元のタイプからサービス参照生成クラスを効果的に構築するために、反射型ディープコピールーチンを作成する必要がありますか? またはより良いオプション

はこれまで非常に喜んいや

NAT

+0

データ契約を渡している複合タイプはありますか?私は、かなりのWCFが共有アセンブリからの再利用型を扱うことができると確信しています。 – DoctorMick

答えて

7

コードにサービス参照を追加する場合は、Advancedを選択すると、オプションReuse types in referenced assembliesが表示されます。これがチェックされ、参照がプロジェクトに追加された場合、WCFはプロキシタイプを生成せず、代わりに参照されるタイプを使用します。

すでにサービス参照を追加している場合は、共有参照をまず参照し、サービス参照を右クリックしてConfigure Service Referenceを選択すると、参照された型を使用してクライアントコードが再生成されます。

+0

これは以前はうまくいきませんでしたが、今度はリストから必要なアセンブリだけを取り出し、うまくいきました。 – nat

5

を受け取ったとして、あなたがそれを行うことができます任意の助けがあります:ここで私の質問を参照してください。

WCF Service Reference generates its own contract interface, won't reuse mine

することができますインターフェイス、タイプを持つ共有アセンブリを持っていて、サービスとクライアントの両方がそれを参照できます:)

'reuse referenced types ..'オプションは複雑な型をカバーしますが、上記の答えはIMOがはるかに良いオプションであり、そのVSオプションではカバーされないインターフェイスタイプの再利用についてもカバーしています。

0

私が誤解していない限り、「サービス参照の追加」内の「詳細設定」で「参照されたアセンブリの再利用の種類」をチェックすると、参照されたアセンブリのものと一致するすべてのデータ契約が再利用され、再生成されません。