C#运行时类创建

时间:2011-02-05 08:04:39

标签: c# reflection propertygrid

我是C#的新手,我听说可以在运行时创建类。这是真的?如果这是真的可以给我一个简单的例子来说明如何做到这一点?我想在运行时从配置文件创建一个类,以在PropertyGrid控件中将其用作SelectedObject。

感谢您的帮助!

4 个答案:

答案 0 :(得分:3)

你可以使用TypeBuilder - 但这是琐碎的东西;你实际上是在运行时编写像IL这样的低级东西。我偶尔这样做,但我有点疯狂。这两者可能是相关的。

对于你想要的(PropertyGrid),一个更简单的选择是通过PropertyDescriptor提供运行时属性;我在stackoverflow上有几个这样的“属性包”示例。这是一个这样的例子:.Net Property Grid. Is there a way to let the Grid manipulate object in different way

但与最简单的选项相比,即便是这样做:使用DataTable;添加所需的列和单行,并将行的双胞胎从表的DefaultView传递给PropertyGrid。

答案 1 :(得分:1)

您真正想要做的是在PropertyGrid中显示任意数据。您无需为此创建新类。您可以使用自定义类型描述符。

检查this

答案 2 :(得分:0)

您可以使用TypeBuilder课程执行此操作。链接的MSDN文档有一个例子。

答案 3 :(得分:0)

我认为你所追求的是dynamic source code generation,它允许你在运行时创建类等。链接包括样本。