2013-11-28 3 views
0

При регистрации объекта на сервере с помощьюКак получить ссылку на объект на сервере?

RemotingConfiguration.RegisterWellKnownServiceType(typeof(Interfaces.client), Singleton", WellKnownObjectMode.Singleton); //in the server 

затем извлечение его в клиенте с помощью

Interfaces.client mgr = (Interfaces.client)(Activator.GetObject(typeof(Interfaces.client), "tcp://localhost:1234/Singleton")); //in the client 

так, чтобы объект можно получить от клиента, и мы можем видеть изменения в стороне сервера , это уже сделано. Моя особая проблема: где я могу найти ссылку на объект на сервере после его создания? (в режиме singleton или singlecall), я знаю, что будет несколько экземпляров, если это режим singlecall, хотя я предполагаю, что экземпляры хранятся в некоторых маканингах службы имен или непосредственно в некотором списке в памяти. пожалуйста, простите мой слабый английский язык

ответ

1

Вам нужно будет создать объект отдельно, то маршалу его вместо того, чтобы использовать RegisterWellKnownServiceType:

Foo foo = new Foo();

RemotingServices.Marshal(foo, "Singleton");

Так изменения клиента будут отражены на стороне сервера в объекте foo.

+0

Таким образом, невозможно зарегистрировать объект в режиме одиночной привязки (один экземпляр для каждого вызова) –

+0

@initParam Правильно это относится только к одиночным. Одиночные вызовы должны жить как можно короче. Если вам нужен доступ к серверу экземпляра одного экземпляра, тогда ваш дизайн ошибочен. –

Смежные вопросы