4

是否可以使用 Reflection.Emit 在现有程序集中创建类型,或者您是否需要定义新的动态程序集才能包含动态类型?

基本上,我打算读入一个 XML 定义文件,该文件定义了一个类,该类随后被多次实例化并填充了来自其他几个 XML 文件的数据。冲洗并重复几个文件夹(每个文件夹都有不同的定义文件)。

我还打算使用这些数据来动态构建我的应用程序的界面,并在将数据重新保存到 XML 文件时定义数据的格式。

4

2 回答 2

6

使用 Reflection.Emit 时,您必须始终创建一个新程序集。

但是,一种可能的选择是采用您现有的程序集,并将合同定义为接口。您可以在运行时使用 Reflection.Emit 创建新程序集,并让它定义实现您的接口的类型。您的程序集可以使用工厂模式来实例化属性、动态生成的类型,并返回您的(在编译时已知的)接口的实现。

于 2010-01-22T02:19:12.570 回答
1

使用 Reflection.Emit,您可以定义一个新程序集。

于 2010-01-22T02:13:27.387 回答