次のような単純なデコレータ クラスがあります。パブリック メソッドがすべて、装飾対象のクラスの新しいインスタンスを作成し、呼び出しをそのインスタンスに転送する方法に注目してください。
このクラスの問題は、IMyService
更新されるたびに、このプロキシ クラスも更新する必要があることです。
public class MyProxyService : IMyService
{
readonly IMyServiceFactory _realServiceFactory;
public MyProxyService(IMyServiceFactory realServiceFactory)
{
_realServiceFactory = realServiceFactory;
}
private IMyService CreateRealService()
{
return _realServiceFactory.CreateRealService();
}
public int A()
{
return CreateRealService().A();
}
public int B(int b1)
{
return CreateRealService().B(int b1);
}
public int C(int c1, int c2)
{
return CreateRealService().C(c1,c2);
}
public int D(int d1, int d2, int d3)
{
return CreateRealService().D(d1,d2,d3);
}
public void E()
{
CreateRealService().E();
}
}
を使用して動的バージョンを作成しようとしましたが、Castle.DynamicProxy
これまでのところ運がありません。
このようなデコレータを動的に作成するための簡単で良い方法を知っている人はいますか?