【发布时间】:2010-12-27 13:45:40
【问题描述】:
我有一些类没有实现某个接口,但在结构上符合那个接口。
interface IFoo {
void method();
}
class Bar { // does not implement IFoo
public void method() {...}
}
现在,我可以为那些简单地委托给被包装类的类编写一个包装器
class BarWrapper : IFoo {
Bar bar = new Bar();
public void method()
{
bar.method();
}
}
但这是很多乏味的工作。这些包装类可以以某种方式自动生成吗?比如:
IFoo foo = CreateWrapper<IFoo>(new Bar());
我相信您可以使用 Reflection.Emit 来做到这一点,但我从未使用过它,而且乍一看并不容易。
有没有更简单的方法,或者是否有一个库已经实现了这个?
【问题讨论】:
-
如果您最终不得不自己编写,作为相关示例,这可能会有所帮助:stackoverflow.com/questions/847809/…