0

私はWCFプロジェクトに取り組んでおり、正しい方法でクラスを設計する方法についていくつかのアイデアを得たいと思っていました。現在、IUserとICaseの2つのインターフェイスがあり、2つの別々のクラスファイル(IUser.csとICase.cs)にあります。読みやすくするために、それらを別々に保ちたいと思います。それらを実装するとき、私はそれらを実装する部分クラスを構築しているので、次に2つの他のファイルUser.csとCase.csがあり、それらは次のように実装されています。

public partial class AppService : ICase

public partial class AppService : IUser

このようにして、実装は分離されたままになります。web.configファイルのエンドポイントを構築するとき、コントラクトごとに2つの別々のエンドポイントがあります。

<endpoint address="" binding="wsHttpBinding" contract="AppService.ICase" />
<endpoint binding="wsHttpBinding" contract="AppService.IUser" />

私の質問は、これは通常どのように行われるのかということでした。または、エンドポイントが2つではなく1つになるように組み合わせる方法はありますか?それらを別々のインターフェースに保持したいのですが、後でインターフェースを追加する場合、その機能を公開するためにエンドポイントを追加し続ける必要がありますか、それとも複数のインターフェースを持ち、それらすべてを公開するエンドポイントは1つだけにする方法はありますか?

4

1 に答える 1

1

WCF のコントラクトに関する唯一の制約は、明示的なコントラクトを 1 つ持つ必要があるということです。ただし、複数のインターフェースを 1 つに自由に組み合わせることができます。

public interface ICombinedInterface : ICase, IUser 

結合されたインターフェイスをサービス コントラクトとして使用します。

質問: 「1 つまたは複数のエンドポイントが必要かどうか」簡単な答えはありません。それは、要件と優先順位が何であるかによって異なります。クライアントの観点からは、それほど重要ではありません。

于 2013-02-12T19:53:09.233 に答える