如何使用Reflection获取类的实例?

时间:2014-02-24 04:06:53

标签: c# reflection

如何使用C#Reflection获取类的实例?

例如,

public class Sample
{
}

Sample s = new Sample();
Sample s2 = new Sample();
Sample s3 = new Sample();

如何使用反射获取这三个样本类实例?

2 个答案:

答案 0 :(得分:2)

使用System.Activator.CreateInstance,您可以使用反射创建类的实例。例如......

System.Type type = typeof(Sample);
object obj = Activator.CreateInstance(type);

在此示例中,obj是您新创建的实例。此方法的重载次数很少,此MSDN Documentation

中有更多信息

根据评论进行编辑

如果你想要的是能够检索一个类的所有实例,我想使用托管代码是不可能的。您将需要使用非托管代码来使用Profiling API配置托管堆,或使用HeapWalk function枚举托管堆中分配的所有对象。

答案 1 :(得分:0)

var s = (Sample)Activator.CreateInstance(Sample);
var s2 = (Sample)Activator.CreateInstance(Sample);
var s3 = (Sample)Activator.CreateInstance(Sample);