是否可以通过 C# Remoting 保存对象实例?

发布于 2024-10-05 09:05:31 字数 564 浏览 1 评论 0原文

我是远程处理的新手,我想制作一个系统托盘应用程序,用于执行一些后台任务。我还有其他两个程序需要访问系统托盘应用程序修改的对象,并且它们会用它们做一些事情。

它或多或少是这样的:

Tray App -> 在后台加载所有内容

程序 1 ->显示有关在托盘应用

程序 2 -> 中实例化的“MyObject”的一些信息“MyObject”的实用程序在 Tray 应用程序中实例化,它连接到其他地方的随机服务器并执行某些操作,

但我对所有远程处理概念都迷失了。

我正在使用这个:

RemotingConfiguration.RegisterWellKnownServiceType(commonInterfaceType, Constants.ServiceName, WellKnownObjectMode.Singleton);

但它似乎是对对象类本身的引用,而不是它的实例。

如何在应用程序中处理对象并让其他应用程序使用它?我不想使用数据库,或序列化另一个文件中的任何内容。

I'm new to remoting, I want to make a system tray app which will be used to perform some background tasks. I have other 2 programs which need to access the objects modified by the system tray app, and them do stuff with them.

It's more or less like this:

Tray App -> loads everything in background

Program 1 -> Displays some info about "MyObject" instantiated within Tray App

Program 2 -> Utilities for "MyObject" instantiated within Tray App, which connects to a random server elsewhere and do stuff,

But i'm lost on all the remoting concept.

I'm using this:

RemotingConfiguration.RegisterWellKnownServiceType(commonInterfaceType, Constants.ServiceName,
WellKnownObjectMode.Singleton);

But it seems like it's a reference to the object class itself, not an instance of it.

How can I process an Object within an application and let other apps use it? I don't want to use databases, or serialize anything in another file.

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

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

发布评论

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

评论(1

尸血腥色 2024-10-12 09:05:31

要注册现有实例之一并将其发布到远程处理,请执行以下操作。

第一次调用:

RemotingServices.SetObjecturilForMarshal(MarshalByRefObject, uri)

然后调用以下重载之一:

System.Runtime.Remoting.RemotingServices.Marshal(MarshalByRefObject)
System.Runtime.Remoting.RemotingServices.Marshal(MarshalByRefObject, String)
System.Runtime.Remoting.RemotingServices.Marshal(MarshalByRefObject, String, Type)

这应该可以工作。

To register one of your existing instances and publish it on Remoting do as follows.

First call:

RemotingServices.SetObjecturilForMarshal(MarshalByRefObject, uri)

Then call one of the following overloads:

System.Runtime.Remoting.RemotingServices.Marshal(MarshalByRefObject)
System.Runtime.Remoting.RemotingServices.Marshal(MarshalByRefObject, String)
System.Runtime.Remoting.RemotingServices.Marshal(MarshalByRefObject, String, Type)

That should work.

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