2014-10-31 43 views
0

有没有办法检索对特定类实例的引用?获取内存中特定类对象的引用

我知道这个类的名字,我知道它在内存中只有一个实例。

我需要这样做才能调用该实例的方法,但出于设计原因,我无法将该方法定义为“静态”。

例如,我想这样做:

public static void Main() 
    ... 
    object temp= GetCurrentInstanceOf("ClassToUse"); 
    temp.MethodINeed(); 
    ... 
} 

回答

2

没有,有没有这样做的方式。

您可以在该类中使用静态变量以保留对“最近创建的实例”的引用 - 当然,这将防止垃圾回收。或者你可以让班级成为一个单身人士 - 类似的解决方案,但只允许创建一个实例到有史以来

但理想情况下,您只需更改设计,以不同的方式为您提供正确的实例。依赖注入通常是前进的方向,但是如果没有更多细节,就不可能确切地说出它将如何在你的情况下泛滥。

任何依赖这种“全局状态”的东西都会成为可测试性的痛点。我强烈要求重新考虑整体设计和数据流,而不是使用全局状态的静态。