以下是一个使用反射创建 List 类型的实体类的示例:
```
using System;
using System.Collections.Generic;
using System.Reflection;
public class MyClass
{
public int Id { get; set; }
public string Name { get; set; }
}
class Program
{
static void Main(string[] args)
{
Type listType = typeof(List<>);
Type itemType = typeof(MyClass);
Type genericListType = listType.MakeGenericType(itemType);
ConstructorInfo constructor = genericListType.GetConstructor(Type.EmptyTypes);
object obj = constructor.Invoke(null);
List myList = (List)obj;
myList.Add(new MyClass { Id = 1, Name = "John" });
myList.Add(new MyClass { Id = 2, Name = "Jane" });
foreach (MyClass item in myList)
{
Console.WriteLine($"Id: {item.Id}, Name: {item.Name}");
}
}
}
```
在这个示例中,首先获取了 List 类型的 Type 对象,并使用 Type 对象的 `GetConstructor` 方法获取无参构造函数。然后,使用 ConstructorInfo 对象的 `Invoke` 方法创建 List 类型的对象,并将其赋值给变量 `obj`。最后,使用类型转换将 `obj` 转换为 List 类型的对象 `myList`。
接着,向 `myList` 中添加两个 MyClass 类型的对象,并使用 foreach 循环遍历 `myList` 中的所有元素,并输出它们的 Id 和 Name 属性。