2

インターフェイス ICustomerService があります。

public interface ICustomerService
{

  CustomerList FindAll();
}

およびそのインターフェイスを実装する具象クラス。ここで、wcf/rest を使用して Web 経由でメソッドを公開する必要があり、インターフェイス定義を次のように変更する必要がありました。

[ServiceContract]
public interface ICustomerService
{
  [OperationContract]
  [WebInvoke(
   Method = "GET",
   UriTemplate = "Customers")]
  CustomerList FindAll();
}

私の質問は、残りの API を使用する代わりに dll 参照を使用して実装を使用したいクライアントがいる場合、これらの属性をインターフェイスにアタッチすることにマイナス面があるかどうかです。uri にある場合、パラメーターを文字列型として持たなければならないなど、REST を使用する際の欠点を認識しています。

4

1 に答える 1

0

おそらくコードの読みやすさを除いて、属性の欠点はないはずです(クライアントがインターフェイスソースを見る必要がある場合)。

属性は、(WCF フレームワークのように) 関心のある人なら誰でも読み取ることができるか、無視されます。実際には、それらは実装クラスからは見えません (この質問を参照してください)。

ただし、アーキテクチャ レベルでは、dll 参照クライアント用と REST クライアント用の 2 つのインターフェイスを使用することを検討してください。それらは最初は似ているかもしれませんし、同じ基本インターフェースと実装を共有しているかもしれませんが、ビジネス ケースで必要な場合は、それらを互いに流用することができます。
また、これにより、WCF Web アプリケーション プロジェクトで WCF 属性が満たされたインターフェイスを保持し、コア クラス ライブラリ プロジェクトでクリーンなインターフェイスと実装を保持することができます。

于 2010-02-04T09:34:41.173 に答える