2010-11-30 1 views
0

Я новичок в удалении, я хочу сделать приложение в системном трее, которое будет использоваться для выполнения некоторых фоновых задач. У меня есть другие 2 программы, которым необходимо получить доступ к объектам, которые были изменены приложением в системном трее, и они с ними работают.Можно ли хранить экземпляры объектов через C# Remoting?

Это более или менее, как это:

Tray App ->загружает все в фоновом режиме

Программа 1 -> Отображает некоторую информацию о "MyObject" воплощенные в Tray App

Программа 2 -> Утилиты для «MyObject», созданные в приложении Tray App, которое подключается к произвольному серверу в другом месте и делает вещи,

Но я потерян во всех концепциях удаленного взаимодействия.

Я использую это:

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

Но, похоже, это ссылка на класс объекта сам, а не его экземпляр.

Как я могу обработать объект в приложении и позволить другим приложениям его использовать? Я не хочу использовать базы данных или сериализую что-либо в другом файле.

+0

Вы также изучили Windows Communication Foundation? Возможно, вы захотите иметь сервер, представляющий набор методов службы, которые позволяют вам запрашивать объект - или непосредственно представлять методы объекта. – 2010-11-30 16:45:58

ответ

1

Чтобы зарегистрировать один из существующих экземпляров и опубликовать его на Remoting, сделайте следующее.

Первый звонок:

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) 

Это должно работать.