3

同じオブジェクトを公開している 2 つの WCF サービスがあります。最初のサービス (SerA) がクラス (classA) を公開し、満たされた classA を追加する 2 番目のサービス (SerB) もこのクラスを公開するとします (このクラスはパラメーターに含まれているため)。SerA から classA を取得すると、は名前空間 SerA.classA と連結されており、2 番目のサービスを使用してこれを追加すると、SerB.ClassA のようなクラスが必要になります。両方のクラスが同じであることを指定する方法はありますか。reference.vb で名前空間を変更しようとしましたが、動作しますが、サービス参照が更新されると実際の問題になります。誰でもこれで私を助けることができますか? ありがとう

4

2 に答える 2

2

ClassA(およびその他のデータコントラクト)定義をクラスライブラリに入れて、両方のサービスから参照できます。そうすれば、両方が同じDataContracts.ClassA定義を使用する必要があります。

サービスを別々のプロジェクトに分けることは常に良い考えです。

  • サービス(サービス、操作、データ、場合によってはメッセージコントラクト)を1つのクラスライブラリ(「コントラクト」)に-場合によっては複数のライブラリに-
  • クラスライブラリへのサービスの実装
  • サービスホスト-必要に応じて(IISを使用しない)-別のアセンブリに(コンソールアプリ)

このようにして、サービスコントラクトの特定の部分と、場合によっては実装も再利用できます。

マーク

于 2009-10-22T13:24:31.670 に答える
0

これに対する答えはありませんか?

問題は、サービス参照が独自​​のクラス定義を生成することです..

たとえば、共通ライブラリに" car "クラスがあり、 ClientProjectから使用しているservice1 wcf サービスがありますが、service1 への参照を追加すると、次のようになります。

ClientProject.Service1_ref.Car

Reference.cs内で作成

今のところ、reference.csを変更して毎回共通のクラスを使用することでこれを修正する必要がありますが、本当に良くありません。

編集: この男には答えがあります。「サービス参照の追加」を使用しないでください。他の方法では簡単に実行できます: http://devx.com/codemag/Article/39837/1763/page/5 – Monsters X 0 secs ago edit

于 2011-03-31T17:29:34.463 に答える