如何使用C#Reflection获取类的实例?
例如,
public class Sample
{
}
Sample s = new Sample();
Sample s2 = new Sample();
Sample s3 = new Sample();
如何使用反射获取这三个样本类实例?
答案 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);