2011-02-05 141 views
2

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

感谢您的帮助!

+1

你想在运行时创建一个新的类?或运行时已知的类类型的新实例? – 2011-02-05 08:08:21

+0

我想要一个新的类,新的成员和新的方法。所有这些都在运行时添加。我不知道这是否可能。 – Felics 2011-02-05 08:10:07

+0

你真的想要一个新班吗?或者你只是想在属性网格中显示任意数据?如果是这样,有更简单的方法。 – 2011-02-05 08:20:52

回答

1

实际上你想要做的是在PropertyGrid中显示任意数据。你不需要为此创建一个新类。您可以使用自定义类型描述符。

检查this出。

0

您可以使用TypeBuilder类来做到这一点。链接的MSDN文档有一个示例。

3

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

为了你想要的(PropertyGrid)一个更简单的选项是通过PropertyDescriptor提供运行时属性;我在这里有几个这样的“财产袋”的例子在stackoverflow。这里有一个这样的例子:.Net Property Grid. Is there a way to let the Grid manipulate object in different way

但即使这是最简单的选择相比,工作:使用数据表;添加所需的列和单行,并将行的双胞胎从表的DefaultView传递给PropertyGrid。