如何动态声明一个类? C#

时间:2010-11-02 16:29:25

标签: c# .net reflection anonymous-class

是否有可能动态声明一个类? 是否有可能在C#中使用匿名类创建通用列表? 任何代码片段都会有所帮助。感谢

3 个答案:

答案 0 :(得分:5)

动态声明一个类需要CodeDom

  

是否有可能在C#中使用匿名类创建通用列表?

是的,但一般情况下,不推荐在直接上下文之外使用。例如,这会创建一个匿名类型的通用列表:

var range = Enumerable.Range(0, 100);

var genericList = range.Select(value => new { Value = value }).ToList();

在上面的代码中,genericList是包含匿名类型的List<T>

答案 1 :(得分:5)

正如SLaks在评论中提到的,这是可能的。但这不是微不足道的。我不确定您要做什么,但您可以轻松地将匿名类型添加到通用的对象列表中。

List<object> list = new List<object>();
for(int i = 0; i < 10; i++){
   list.Add(new { SomeProperty = i, OtherProperty = "foobar" });
}

答案 2 :(得分:1)

Microsoft在4.0版中使C#动态化。您可以使用新的“动态”关键字。以下链接提供了一些如何使用新动态类型的好例子。

http://msdn.microsoft.com/en-us/library/dd264741.aspx