在正在运行的进程中获取类的实例

时间:2008-12-18 22:29:38

标签: c#

使用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 个答案:

答案 0 :(得分:2)

您可以使用remoting,或者将现有实例作为COM服务器,并使用COM互操作到现有实例。

也许你也可以使用一些调试API,但我认为不干净。

答案 1 :(得分:0)

如果AppDomain中存在IAutomation接口的现有实例,则必须有指向它的内容,否则将被垃圾收集。因此,您需要确定指向实例的内容并使用它来获取实例。您应该问自己一些问题,例如:谁创建了实例?可能这个对象持有参考。