то в окне консоли клиента вы увидите вывод, подобный показанному на рис. 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) {