我正在编写一个类似于 WCF 接口代理的类,但其中包含一些专门但样板的额外代码。我想提取样板代码并使用通用或其他机制来包装对类的内部实例的调用。
public interface IMyInterface
{
long fn1(int param1, int param2);
}
public class MyInterfaceProxy : IMyInterface
{
// generated code
}
public class MyClass : IMyInterface
{
private MyInterfaceProxy _myProxy; // implements IMyInterface
public long fn1(int param1, int param2)
{
long result = null;
CallMethod(
delegate(IMyInterface svc)
{
result = svc.fn1(param1, param2);
});
return result;
}
private T CallMethod( ??? )
where T : class
{
T result = null;
// some boilerplate code
// Call the delegate, passing _myProxy as the IMyInterface to act on
// some more boilerplate code
return result;
}
}
如果有帮助,样板代码可以表示重试逻辑、超时行为、标准化异常处理行为等。
所以这是我的问题:
- 是否有解决此问题的标准或首选方法?
- 如果泛型是首选机制,那么 CallMethod 函数的签名是什么?