1

私は最近、一種のマルチキャストリレーとして機能するWCFサービスの開発に携わっています(つまり、着信データを受け取り、処理を行ってから、他の複数の外部サービスに送信します)。このサービス(私は「マイサービス」と呼びます)は、2番目の内部サービスによってデータが供給されます。

このデータは、文字列に保持されたXMLとして私のサービスから中継されます。したがって、私のサービスはメソッド要求のパラメーターとして文字列を受け入れることができますが、型の安全性が失われるため、これは理想的ではありません。

2番目のサービスには、サービスが処理され、最終的に外部サービスに中継される必要があるすべての情報をカプセル化するクラスがあります。

2番目のサービスは、データコントラクトでこのクラスを公開します。理想的には、型の安全性を維持し、2番目のサービスの実装に多くの変更を加えることなく、この型のクラスをサービス操作の引数として受け入れる必要があります。

コードを複製せずにこのタイプのクラスが必要であるとデータコントラクトで言うための最良の方法は何でしょうか?この2番目のクラスにサービス参照を追加してから、データコントラクトで作成されたプロキシクラスを使用できますか?

些細な問題のように見えますが、私はこれに頭を悩ませることができません!

助けを応援します!

4

1 に答える 1

2

クラスの重複を回避しようとしている場合は、クラス宣言を独自のアセンブリに配置し、その dll を WCF サービスのすべての関係者間で共有します。サービス参照を作成するときに、共有するアセンブリを選択できます (VS GUI サービス ユーティリティを使用すると仮定します)。

プロキシ クラスを使用するのも良い方法です。メイン データ クラスをデータ コントラクトとして公開し、そのプロキシを作成すると、プロキシには、他のサービスで使用できる公開クラスのバージョンが含まれます。

于 2008-12-04T16:32:18.597 に答える