动态创建一个类,然后在C#

时间:2015-07-09 12:57:21

标签: c#

我想在运行时创建一个类及其属性,属性将类似Year2001,Year2002,Year2003,Year2004,Year2005 ......我在运行时获取这些属性名称,我将它们放在列表中。后来我需要使用这个类创建一个我需要在kendo网格中显示的列表。我经常浏览并考虑使用ExpandoObject,但是没有成功。

3 个答案:

答案 0 :(得分:1)

如果所有属性都是YearX形式并包含一些与该年有关或与之相关的信息,那么我强烈建议您(如果可能的话)使用IList<YearInfo>所在的内容。 YearInfo是一个包含每年所需信息的对象,包括一个整数属性,指示对象对应的年份。如果您要求这些对象是唯一的,则可以使用IDictionary<int, YearObject>ISet<YearObject>代替。

反思可能很强大,但它的代价是复杂性和类型安全/编译时检查的丢失。尽可能避免。

答案 1 :(得分:1)

听起来像你真的想要一个支持分组的网格。你想让系统在运行时创建一个CLASS的想法不会飞。即使有可能,我怀疑它是绝对错误的做法。

就像我说的那样 - 阅读关于网格控件(Kendo grid example here)的分组/层次结构,也可以看看OLAP多维数据集......

答案 2 :(得分:0)

虽然您已经有了一些答案,但我还想建议另一种方法,即使用DataTables。当我有任何&#34;动态&#34;这是我采取的方法。我想要呈现给网格的数据集。

这也是Telerik自己使用其中一个代码示例的方法。

这里有几个链接显示他们对DataTables和动态对象进行此操作

Grid Binding to Data Table

Grid Binding to Dynamic Objects

我个人认为对表的绑定更容易处理,因为我习惯于处理数据表。