Читать «ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание» онлайн - страница 427

Эндрю Троелсен

// Список всех зарегистрированных каналов.

IChannel[] сhannelObjs = ChannelServices.RegisteredChannels;

foreach (IChannel i in channelObjs) {

 Console.WriteLine("Имя канала: {0}", i.ChannelName);

 Console.WriteLine("Приоритет: {0}", i.ChannelPriority);

}

то в окне консоли клиента вы увидите вывод, подобный показанному на рис. 18.4.

Рис. 18.4. Список каналов в окне клиента

Тип RemotingConfiguration

Другим ключевым типом удаленного взаимодействия является тип RemotingConfiguration, который, в соответствии со своим названием, используется для настройки различных параметров приложения удаленного взаимодействия. Вы уже видели этот тип в работе на стороне сервера (при вызове метода RegisterWellKnownServiceType()). Другие заслуживающие внимания статические члены этого типа описываются в табл. 18.5, а возможности применения некоторых из этих членов будут продемонстрированы в оставшейся части этой главы.

Таблица 18.5. Члены типа RemotingConfiguration 

Член Описание
ApplicationId Возвращает идентификатор приложения, выполняющегося в настоящий момент
ApplicationName Возвращает или устанавливает имя приложения удаленного взаимодействия
ProcessId Возвращает идентификатор процесса, выполняющегося в настоящий момент
Configure() Читает файл конфигурации и устанавливает параметры конфигурации инфраструктуры удаленного взаимодействия
GetRegisteredActivatedClientTypes() Возвращает массив объектных типов, зарегистрированных на стороне клиента для удаленной активизации
GetRegisteredActivatedServiceTypes() Возвращает массив объектных типов, зарегистрированных на стороне сервиса для активизации по запросу клиента
GetRegisteredWellKnownClientTypes() Возвращает массив объектных типов, зарегистрированных на стороне клиента в качестве WKO-типов
GetRegisteredWellKnownServiceTypes() Возвращает массив объектных типов, зарегистрированных на стороне сервиса в качестве WKO-типов
IsWellKnownClientType() Проверяет, является ли указанный объектный тип зарегистрированным WKO-типом клиента
RegisterActivatedClientType() Регистрирует объект на стороне клиента как тип, позволяющий активизацию на сервере
RegisterWellKnownClientType() Регистрирует объект на стороне клиента как WKO-тип (синглет или объект одиночного вызова)
RegisterWellKnownServiceType() Регистрирует объект на стороне сервиса как WKO-тип (синглет или объект одиночного вызова)

Напомним, что слой удаленного взаимодействия .NET различает два вида MBR-объектов: WKO (активизируются сервером) и САО (активизируются клиентом). К тому же, WKO-тип может быть активизирован либо как синглет, либо как объект одиночного вызова. Используя функциональные возможности типа RemotingConfiguration, вы можете динамически получить такую информацию в среде выполнения. Например, если добавить в метод Main() приложения SimpleRemoteObjectServer следующие строки программного кода: