1

これに関して別の質問がありますので、さらに詳しい情報が必要な場合はお読みください。これは、他の質問の1つの要素に関連するより具体的な質問です。daoを説明するインターフェースがあります。このインターフェイスは、wcfサービスのインターフェイスとなる別のインターフェイスによって実装されます。その理由は、偶然にも、親インターフェイスのすべての関数をwcfインターフェイスを介して公開する必要があるためです。親インターフェイスにはwcf属性が必要ないため、wcf属性は含まれていません。子インターフェイスがwcfインターフェイスとして機能するには、wcf属性が必要です。wcfインターフェースには、最終的には親インターフェースにないメソッドがさらに含まれる可能性があります。子インターフェースでこれらの属性を取得するには、次の2つの方法が考えられます。

  1. 親インターフェースメソッドを属性で装飾します。
  2. 子インターフェースの親インターフェースからすべてのメソッドをオーバーライドしてから、これらのメソッドを属性で装飾します。

ソリューション1は実際に機能しますか?つまり、wcf属性はchild(wcf)インターフェースによって継承され、サービス契約の一部として利用できるのでしょうか。これは悪い習慣ですか?

解決策2は良い考えでしょうか?単にwcf属性でそれらを装飾するために、すべてのメソッドをオーバーライドすることは逆効果のようです。

4

1 に答える 1

1

私はあなたの解決策#2がより良いものだと思います。

逆効果に見えるかもしれませんが、実際には論理的です。いくつかのタスクを実行するいくつかのメソッドとのインターフェイスがあり、その上に、必要な方法でそれらを公開する別の「レイヤー」を追加します。

このように、WCFを介してメソッドを公開したくないが、たとえば、RIAサービスにしたい場合、または偽のクライアントに置き換えたい場合は、「上位」レイヤーを切り替えて、オーバーライドします。基盤となる実際のインターフェースは、これを認識する必要さえありません。

それはすべて、「ワイヤー」(親インターフェース)を正しい「ディスプレイ」(子インターフェース)に接続することに頼っています。

于 2012-07-26T12:16:18.230 に答える