我有一些类没有实现某个接口,但在结构上符合该接口.
interface IFoo {
void method();
}
class Bar { // does not implement IFoo
public void method() {...}
}
Run Code Online (Sandbox Code Playgroud)
现在,我可以围绕那些简单地委托给包装类的类编写一个包装器
class BarWrapper : IFoo {
Bar bar = new Bar();
public void method()
{
bar.method();
}
}
Run Code Online (Sandbox Code Playgroud)
但那是很多繁琐的工作.那些包装类可以自动生成吗?就像是:
IFoo foo = CreateWrapper<IFoo>(new Bar());
我相信你可以用Reflection.Emit做到这一点,但我从来没有用过它,乍一看它看起来并不容易.
有没有更简单的方法,或者是否有一个库已经实现了这个?