Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Тип ChannelServices
Тип ChannelServices
Итак, объявляя существование удаленного типа, сервер использует тип System. Runtime.Remoting.Channels.ChannelServices. Тип ChannelServices предлагает небольшой набор статических методов, призванных обеспечить содействие в процессе регистрации канала удаленного взаимодействия и обнаружения указанного URL. Главные члены данного типа описаны в табл. 18.4.
Вдобавок к методам RegisterChannel() и UnregisterChannel() с их ясными названиями, тип ChannelServices определяет свойство RegisteredChannels. Этот член возвращает массив интерфейсов IChannel, каждый из которых представляет дескриптор соответствующего канала из тех, которые зарегистрированы в данном домене приложения.
Таблица 18.4. Подборка членов типа ChannelServices
Член | Описание |
---|---|
RegisteredChannels | Свойство, получающее или устанавливающее список зарегистрированных в настоящий момент каналов, каждый из которых представляется интерфейсом IChannel |
DispatchMessage() | Метод, выполняющий обработку поступающих удаленных вызовов |
GetChannel() | Метод, возвращающий зарегистрированный канал с указанным именем |
GetUrlsForObject() | Метод, возвращающий массив адресов URL, которые могут использоваться для доступа к указанному объекту |
RegisterChannel() | Метод, регистрирующий канал о соответствующими канальными сервисами |
UnregisterChannel() | Метод, отменяющий регистрацию данного канала и удаляющий этот канал из списка зарегистрированных |
Определение интерфейса IChannel оказывается исключительно простым.
publiс interface IChannel {
string ChannelName { get; }
int ChannelPriority { get; }
string Parse(string url, ref String objectURI);
}
Как видите, каждый канал получает понятное строковое имя, а также свой уровень приоритета. Например, если добавить в метод Main() приложения SimpleRemoteObjectClient следующую) программную логику
// Список всех зарегистрированных каналов.
IChannel[] сhannelObjs = ChannelServices.RegisteredChannels;
foreach (IChannel i in channelObjs) {
Console.WriteLine("Имя канала: {0}", i.ChannelName);
Console.WriteLine("Приоритет: {0}", i.ChannelPriority);
}
то в окне консоли клиента вы увидите вывод, подобный показанному на рис. 18.4.
Рис. 18.4. Список каналов в окне клиента
- Понятие удаленного взаимодействия .NET
- Пространства имен удаленного взаимодействия .NET
- Каркас удаленного взаимодействия .NET
- Термины удаленного взаимодействия .NET
- Инсталляция приложения, использующего удаленное взаимодействие
- Создание распределенного приложения
- Тип ChannelServices
- Тип RemotingConfiguration
- Снова о режиме активизации WKO-типов
- Установка сервера на удаленной машине
- Использование ТСР-каналов
- Несколько слов о IpcChannel
- Файлы конфигурации удаленного взаимодействия
- Работа с MBV-объектами
- Объекты, активизируемые клиентом
- Схема лизингового управления циклом существования САО-типов и WKO-синглетов
- Спонсоры лизинга сервера (и клиента)
- Альтернативные хосты для удаленных объектов
- Асинхронное удаленное взаимодействие
- Резюме
- Типы данных для работы с датой и временем
- Большие целые типы
- Типы страниц и их использование
- 6.2. Типичные ошибки при проведении программ продвижения и варианты их устранения
- Тип данных BIGINT
- Использование CAST() с типами дата
- Новый тип данных: BOOLEAN
- 1.2.3. Константы, переменные и типы
- 4. Лекция: Типы данных
- Использование типов содержимого и столбцов
- 500 типичных проблем и их решений при работе на ПК
- 9.1. Классы и прототипы