2014-10-31 89 views
0

有沒有辦法檢索對特定類實例的引用?獲取內存中特定類對象的引用

我知道這個類的名字,我知道它在內存中只有一個實例。

我需要這樣做才能調用該實例的方法,但出於設計原因,我無法將該方法定義爲「靜態」。

例如,我想這樣做:

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

回答

2

沒有,有沒有這樣做的方式。

您可以在該類中使用靜態變量以保留對「最近創建的實例」的引用 - 當然,這將防止垃圾回收。或者你可以讓班級成爲一個單身人士 - 類似的解決方案,但只允許創建一個實例到有史以來

但理想情況下,您只需更改設計,以不同的方式爲您提供正確的實例。依賴注入通常是前進的方向,但是如果沒有更多細節,就不可能確切地說出它將如何在你的情況下氾濫。

任何依賴這種「全局狀態」的東西都會成爲可測試性的痛點。我強烈要求重新考慮整體設計和數據流,而不是使用全局狀態的靜態。