これに関連するいくつかの質問をしましたが、まだ決定的な回答が得られていないため、ここでより簡単な質問をします。
このことを考慮。私は2つのインターフェースを持っています。1 つは dao について説明します。1 つは wcf インターフェイスです。wcf インターフェースは、そのメソッドを wcf 属性で公開するために dao インターフェースを継承します。これは wcf インターフェースであるため、[OperationContract] などの wcf 属性を配置するために、メソッドを再度宣言する必要があります。その結果、以前のインターフェイス メソッドを事実上隠しており、それらに「new」キーワードを配置する必要があります。これは、この状況で行う正しいことですか。wcf インターフェイスを介して dao インターフェイス メソッドを提示できるようにする必要があるため、それを継承する必要があります。これらの関数を公開するように wcf インターフェイスを強制したいと考えています。私の手はかなり縛られており、メソッドを公開するためにこのアプローチを使用する必要があるようですが、どう思いますか?
コード的には、次のようになります。
//The dao interface
public interface IMyDao
{
void Foo();
}
//The wcf interface which implements/extends the IMyDao interface in order to add wcf attributes
[ServiceContract]
public interface IMyWCF : IMyDao
{
[OperationContract]
new void Foo();
}
//The dao class that implements the dao interface
public class MyDao : IMyDao
{
public void Foo()
{
//Do something
}
}
//The class implements the wcf interface. Makes calls to the dao.
public class MyWCF : IMyWCF
{
public void Foo()
{
MyDao myDao = new MyDao();
myDao.Foo();
}
}