Читать «ЯЗЫК ПРОГРАММИРОВАНИЯ С# 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 следующие строки программного кода: