2

エンドポイント コントラクトを実際に「取得」しようとしています:

異なるバインディングをサポートするために異なるエンドポイントを提供することは理解していますが、サービスに対して n 個のエンドポイントを定義し、異なるコントラクトを使用するのはいつですか? ほとんどの場合 (IMetadataExchange を除く)、エンドポイント コントラクトはプロトコルに関係なく同じですよね?

ほとんどの場合、コントラクトがすべてのエンドポイントで同じである場合、各エンドポイントではなく親サービスでサービス コントラクトを定義するのは単純すぎたでしょうか (そしてその理由は?) (面倒/繰り返しのようです)。必要に応じてエンドポイントをオーバーライドします (例: IMetadataExchange)。

夜眠れない小さな質問を手伝ってくれてありがとう;-)

4

1 に答える 1

2

わかりました。タグで定義するサービスは、実際の実装コード、つまりサービスを構成する実際の C# または VB.NET の行です。したがって、これは具象クラスです (複数のサービス コントラクトを実装する場合もあります)。これはサーバー側のみです。<service>

ただし、エンドポイントはサーバーとクライアント間の通信チャネルであり、これら 2 つの間でコントラクトのみを共有する必要があります。そのコントラクトの具体的な実装はありません。エンドポイントは、 1 つのサービス コントラクトに対してのみ使用されます。具体的なサービスが複数のコントラクトを実装する場合、そのすべての機能を提供するには、複数のエンドポイントをクライアントに公開する必要があります。

それは物事を少し明確にしますか?

于 2012-08-10T04:48:18.550 に答える