基于propertyinfo []生成运行时类型

时间:2014-01-09 11:40:47

标签: c# system.reflection

我有一个PropertyInfo列表,现在我需要用这些propertyinfos填充一个新对象,并且有值或泛型类型运行时包含这些属性,所以我可以根据我的运行时创建的类型创建一个新的对象实例

我无法基于早期类型创建对象的新实例,因为我刚刚过滤掉了基于集合的属性(这是由于对象的序列化;长篇故事)。

我怎样才能实现这个目标?

2 个答案:

答案 0 :(得分:1)

我认为TypeBuilder符合您的需求。 在页面底部,您将看到一个清晰的示例。 此外,如果您需要构建方法,请使用表达式树而不是ILGenerator。

答案 1 :(得分:1)

以下是一些选项:

  • 使用TypeBuilder创建运行时类型。使用DefineMethodOverride实现属性的get / set方法并返回接口类型(使用运行时实现)。
  • 使用众多Mock框架之一。他们基本上为你做管道工作;结果是一样的。