【问题标题】:Getting a reference in .net code to an already running process在 .net 代码中获取对已运行进程的引用
【发布时间】:2009-05-26 13:11:47
【问题描述】:

是否可以在托管代码中获取对已运行进程(COM+ 组件)的引用并在其上调用方法?除了实例化一个新对象之外,有没有一种方法可以指向一个已经运行的 COM 对象实例,这样 .net 代码就可以引用正在运行的进程,就像它已经实例化它一样 - 像调用它的方法一样它在自己的应用程序域中更新了一个?

【问题讨论】:

    标签: .net windows process reference


    【解决方案1】:

    COM

    这完全取决于 COM 组件。如果它被设计为单例(例如,这在 ATL 中直接支持)并且不在进程中,那么获取相同的对象是唯一的选择。

    另一方面,大多数 COM 组件不提供执行此操作的功能,即使进程耗尽。单个代理/代理组件可以拥有相关组件的单个实例。

    总结:这是可以做到的,但只有在组件的合作下,客户端代码才能通过覆盖实例化以返回相同的对象来“实例化”。

    WCF

    WCF 可能是另一条路线。默认情况下,WCF 服务器运行时将为每个调用实例化一个新实例。但是您可以使用属性来覆盖它,并在单个实例中服务所有客户端请求(并且您必须处理并发)。同样,实现服务契约的类可以引用单例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多