在 .net 代码中获取对已运行进程的引用

发布于 2024-07-22 20:44:09 字数 153 浏览 5 评论 0原文

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

Is it possible in managed code to get a reference to an already running process (COM+ component) and call methods on it? Instead of instantiating a new object, is there a way to point to an already running instance of a COM object so that the .net code has a reference to the running process just as if it had instantiated it - to call methods on it as if it had newed one up in it's own app domain?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

迷离° 2024-07-29 20:44:10

COM

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

另一方面,大多数 COM 组件不提供执行此操作的能力,即使在进程外运行也是如此。 单例代理/代理组件可以拥有相关组件的单个实例。

摘要:这是可以完成的,但只有在客户端代码通过覆盖该实例化以返回相同对象来“实例化”的组件的配合下。

WCF

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

COM

It all depends on the COM component. If it is designed as a singleton (this is directly supported in ATL for instance) and is out of process then getting the same object is the only option.

On the other hand, most COM components provide no ability to do this, even if run out of process. A singleton broker/proxy component could own the single instance of the component in question.

Summary: it can be done, but only with the cooperation of the component the client code "instantiates" by overriding that instantiating to return the same object.

WCF

WCF could be another route. By default the WCF server runtime will instantiate a new instance for each call. But you can use attributes to override this, and serve all client requests in a single instance (and you have to handle the concurrency). Equally the class implementing the service contract could reference a singleton.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文