Учитывая, что мой клиентский код знает все, что ему нужно об объекте удаленного взаимодействия, каков самый простой способ подключиться к нему?
Вот что я делаю сейчас:
ChannelServices.RegisterChannel(new HttpChannel(), false);
RemotingConfiguration.RegisterWellKnownServiceType(
typeof(IRemoteServer), "RemoteServer.rem", WellKnownObjectMode.Singleton);
MyServerObject = (IRemoteServer)Activator.GetObject(
typeof(IRemoteServer),
String.Format("tcp://{0}:{1}/RemoteServer.rem", server, port));





WCF.
Я использовал IPC до того, как появился WCF, и поверьте мне, IPC - это медведь. И это не задокументировано полностью / правильно.
Какой самый простой способ подключиться к объекту удаленного сервера .NET? WCF.
Первые две строки находятся в коде на стороне сервера, для маршалинга серверного объекта, да?
В этом случае да, третья строка - самая простая из возможных на стороне клиента.
Кроме того, вы можете обслуживать дополнительные серверные объекты из экземпляра MyServerObject, если вы включите для них общедоступные аксессоры в интерфейсе IRemoteServer, поэтому доступ к этим объектам становится простым вопросом вызовов методов или доступа к свойствам на вашем основном серверном объекте, поэтому вам не нужно использовать активатор для каждой вещи:
//obtain another marshalbyref object of the type ISessionManager:
ISessionManager = MyServerObject.GetSessionManager();