使用TypeBuilder.CreateType创建类型后修改类型

时间:2009-04-02 01:31:59

标签: .net reflection

我在运行时在动态程序集中创建动态类,并希望能够按需定义该类的方法。

实施例

  1. 构建类型X
  2. 在类型X上定义方法GetA
  3. 创建类型X
  4. 致电GetA
  5. 对类型X使用相同的类型构建器
  6. 在类型X上定义新方法GetB
  7. 重新创建类型X,现在同时具有GetA和GetB
  8. 如果这是不可能的,那么我将不得不根据需要为其中一个方法构建类型,为此我必须每次都创建程序集。

    任何想法, 感谢

2 个答案:

答案 0 :(得分:1)

您无法创建“完整”方法(可通过反射发现) - 但是,您可以使用DynamicMethod将新IL块与类型(主要用于范围等)相关联。但最终,您所描述的是DLR 4.0(以及Iron Python等语言; C#和VB不为声明动态方法添加语言支持 - 只消耗它们)的工作。< / p>

答案 1 :(得分:0)

也许您应该使用CodeDom创建类型。您可以构建整个类型,编译代码,然后加载新程序集并使用类型。