то в окне консоли клиента вы увидите вывод, подобный показанному на рис. 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 следующие строки программного кода:
static void Main(string[] args) {
…
// Установка понятного имени для данного приложения сервера.
RemotingConfiguration.ApplicationName = "Первое серверное приложение";
Console.WriteLine("Имя приложения: {0}", RemotingConfiguration.ApplicationName);
// Получение массива типов WellKnownServiceTypeEntry,
// представляющих зарегистрированные WKO-объекты.
WellKnownServiceTypeEntry[] WKOs = RemotingConfiguration.GetRegisteredWellKnownServiceTypes;
// Вывод информации.
foreach(WellKnownServiceTypeEntry wko in WKOs) {