2014-01-09 81 views
0

我有一個PropertyInfo的列表,現在我需要用這些propertyinfos填充一個新對象,並且存在值或通用類型運行時包含這些屬性,所以我可以創建一個新的實例該對象基於我的運行時創建類型。基於屬性信息生成運行時類型[]

我無法基於較早的類型創建對象的新實例,因爲我剛剛過濾了基於集合的屬性(這是由於對象的序列化;長篇故事)。

我該如何做到這一點?

回答

1

我認爲TypeBuilder將滿足您的需求。 在頁面底部,您將看到一個清晰的示例。 另外,如果您需要構建方法,請使用Expression Trees而不是ILGenerator。

1

這裏有幾個選項:

  • 使用TypeBuilder創建運行時類型。使用DefineMethodOverride實現屬性的get/set方法並返回接口類型(使用運行時實現)。
  • 使用許多Mock框架之一。他們基本上爲你做了管道工程;結果是一樣的。