C# 当我知道所有单例的System.Assembly.Type时,是否可以获取它们的实例?

C# 当我知道所有单例的System.Assembly.Type时,是否可以获取它们的实例?,c#,.net-assembly,system.reflection,C#,.net Assembly,System.reflection,我从抽象基类继承的所有类如下所示: Assembly myAssembly = Assembly.GetExecutingAssembly(); var classesThatInheritFromBase = myAssembly.GetTypes().Where(x => x.BaseType == typeof(BaseClass)); 现在我能以某种方式获得所有这些类的所有/任何实例吗?这仍然属于反射吗?如果让所有的单例实现一个接口,比如说ISingleton,用一个方法返回

我从抽象基类继承的所有类如下所示:

Assembly myAssembly = Assembly.GetExecutingAssembly();
var classesThatInheritFromBase = myAssembly.GetTypes().Where(x => x.BaseType ==  
typeof(BaseClass));

现在我能以某种方式获得所有这些类的所有/任何实例吗?这仍然属于反射吗?

如果让所有的单例实现一个接口,比如说
ISingleton
,用一个方法返回实例,我们称之为
GetInstance
,那将是最简单的。然后,您可以在其
GetInterfaces()
enumerable中获取所有具有
ISingleton
的类型,通过反射捕获
GetInstance
方法并调用它

无法简单地找到给定类型的所有实例,因为您必须以某种方式遍历所有正在运行的线程的整个分配的堆空间和堆栈空间,这是。。。至少可以说很难实现