使用Reflection.Emit发出从另一种类型和接口派生的类型

时间:2010-03-10 12:21:04

标签: reflection.emit

我有一个A类,它实现了接口I:

class A: I
{
  // implementation of I
}

还有另一个接口J,它扩展了I:

interface J : I
{
  // J methods and properties.
}

我想发出一个动态类B,看起来像这样:

class B : A, J
{
  // All the constructors of A
  // All the methods of J, which are not implemented by A. Their implementation would just throw NotImplementedException()
}

我对Reflection.Emit有足够的知识从头开始做,但是,唉,我真的不希望这样做。有没有人知道一个可以做到这一点的图书馆?

感谢。

P.S。

我知道Castle项目,但从未真正使用它,也不知道他们是否已为我准备好解决方案。

2 个答案:

答案 0 :(得分:0)

当您通过DefineType创建类型定义时,会覆盖基类和已实现的接口: http://msdn.microsoft.com/en-us/library/f53tx4x8.aspx

答案 1 :(得分:0)

Castle DynamicProxy can be used to do it