Книга: C# для профессионалов. Том II
Активация хорошо известных объектов
Активация хорошо известных объектов
using System;
является статическим методом класса
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
/// ...
TcpClientChannel channel = new TcpClientChannel();
ChannelServices.RegisterChannel(channel);
Hello obj = (Hello)Activator.GetObject(
typeof(Hello), "tcp://localhost:8086/Hi");
GetObject()System.Activator
, который вызывает метод RemotingServices.Connect()
для возврата объекта прокси удаленному объекту. Первый аргумент определяет тип удаленного объекта. Прокси реализует все открытые и защищенные методы и свойства, так что клиент может вызывать эти методы так же, как для реального объекта. Второй аргумент является URL удаленного объекта. Здесь используется строка tcp://localhost:8086/Hello
, где tcp
— протокол, localhost:8086
— имя хоста и номер порта и, наконец, Hello
— это URI объекта, который был определен с помощью RemotingConfiguration.RegisterWellKnownServiceType()
.
Вместо Activator.GetObject()
можно также использовать RemotingServices.Connect()
:
Hello obj =
(Hello)RemotingServices.Connect(typeof(Hello), "tcp://localhost:8086/Hi");
Если вы предпочитаете задать просто оператор new для активизации хорошо известных удаленных объектов, то удаленный объект можно зарегистрировать на клиенте с помощью все того же RemotingConfiguration.RegisterWellKnownClientType()
. Здесь понадобятся похожие аргументы: тип удаленного объекта и URI. Теперь можно использовать оператор new, который на самом деле не создает новый удаленный объект, а возвращает прокси аналогично Activator.GetObject()
. Если удаленный объект регистрируется с флажком WellKnownObjectMode.SingleCall
, правило остается тем же самым: удаленный объект создается с каждым вызовом метода:
RemotingConfiguration.RegisterWellKnownClientType(
typeof(Hello), "tcp://localhost:8086/Hi");
Hello obj = new Hello();
- 6. Тайная жизнь объектов
- Растущий подсолнечник - присвоение родителей и группирование объектов
- Активизация объектов
- 6.1. Создание объектов
- Альтернативные хосты для удаленных объектов
- Анимация видимости объектов
- Эту книгу хорошо дополняют:
- Иерархия объектов в InterBase
- Имена объектов длиной 68 символов
- Создание объектов Collection
- Эту книгу хорошо дополняют:
- 3.3. Определение объектов защиты