2008-12-18 53 views
2

使用C#,有沒有什麼辦法掛鉤到正在運行的應用程序(我自己的應用程序)並獲得一個類的實例?現在我正在這樣做在運行過程中獲取一個類的實例

// Find the IAutomation interface. 
Type[] types = assembly.GetTypes(); 

foreach (Type type in types) 
{ 
    if (!type.IsAbstract && type.GetInterface("IAutomation") != null) 
     automation = (IAutomation)Activator.CreateInstance(type); 
} 

這會每次創建應用程序的新實例。我不想單身申請!我想附加到現有的實例(如果存在)並從那裏拔出IAutomation。

這可能嗎?

回答

2

您可以使用remoting或使您的現有實例成爲COM服務器,並將COM互操作用於現有實例。

也許有一些調試API,你可以使用,但我不會考慮乾淨。

0

如果AppDomain中存在IAutomation接口的現有實例,則必須指向它,否則會收集垃圾。因此,您需要確定指向實例的內容並使用它來獲取實例。你應該問自己以下問題:誰創建了實例?這可能是持有該參考的這個對象。