Столкнулся я тут с проблемой:
Хочу создать удаленно объект. Вычитал что есть Server-activated и Client-activated объекты.
С Server-activated я вроде разобрался:
На сервере ServerApp делаю класс RemoteServer, реализующий опубликованный в общей сборке Common интерфейс IServer.
Пишу и потом юзаю конфиг:
ServerApp.exe.config:
<configuration>
<system.runtime.remoting>
<application name="ServerApp">
<service>
<wellknown mode="Singleton" type="ServerApp.RemoteServer, ServerApp" objectUri="RemoteServer.soap" />
</service>
<channels>
<channel ref="http" port="8000" />
</channels>
</application>
</system.runtime.remoting>
</configuration>
На клиенте создаю объект так:
IServer myServ = ( IServer )Activator.GetObject( typeof( IServer ), "
http://localhost:8000/ServerApp/RemoteServer.soap" );
Вопрос #1: КАК УКАЗАТЬ ЧТОБЫ УДАЛЕННО СТАЛ ЮЗАТЬСЯ ЗАРАНЕЕ СОЗДАННЫЙ НА СЕРВЕРЕ ОБЪЕКТ???
RemotingServices.Marshal( myServObj [,URI] ) почему то не работает,
вернее он просто генерит не тот URI который надо (надо "ServerApp/RemoteServer.soap" )и видимо поэтому для клиента создается новый объкт...
И еще, как бы сделать так чтобы создавались Client-activated объекты?
IServer myServ = ( IServer )Activator.CreateInstance( typeof( IServer ) ); не прокатывает... (видимо это просто аналог: IServer myServ = new IServer())
... даже если предварительно прописать и заюзать конфиг:
<configuration>
<system.runtime.remoting>
<application>
<client url="
http://localhost:8000/ServerApp">
<wellknown type="Common.IServer, Common" url="
http://localhost:8000/ServerApp/RemoteServer.soap" />
</client>
<channels>
<channel ref="http" />
</channels>
</application>
</system.runtime.remoting>
</configuration>
А во всех МСДН'овских примерах удаленно юзают класс, сборка которого полностью доступна на клиенте:
RemoteServer myServ = ( RemoteServer )Activator.CreateInstance( typeof( RemoteServer ) );
Это работает, но какой смысл в такой удаленной активизации если на клиенте есть полная имплементация всех методов???
Итак, вопрос #2: КАК УДАЛЕННО СОЗДАТЬ CLIENT-ACTIVATED ОБЪЕКТ ЕСЛИ НА КЛИЕНТЕ ДОСТУПНА ТОЛЬКО ИНФОРМАЦИЯ ОБ ИМПЛИМЕНТИРОВАННОМ В НЕМ ИНТЕРФЕЙСЕ?
Заранее огромное спасибо всем кто отзовется!