Тип RemotingConfiguration

Тип 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) {

  Console.WriteLine("Имя блока, содержащего WKO: {0}", wko.AssemblyName);

  Console.WriteLine("URL данного WKO: {0}", wko.ObjectUri);

  Console.WriteLine("Тип WKO: {0}", wko.ObjectType);

  Console.WriteLine("Режим активизации WKO: {0}", wko.Mоde);

 }

}

то вы должны увидеть список всех WKO-типов, зарегистрированных доменом приложения сервера. Выполнив цикл по всем элементам массива типов WellKnownServiceTypeEntry, можно выяснить характеристики каждого из WKO-объектов. Поскольку ваше серверное приложение регистрирует только один тип (SimpleRemotingAsm.RemoteMessageObject), вы получите вывод, показанный на рис. 18.5.

Рис. 18.5. Статистика сервера

Другим важным методом типа RemotingConfiguration является метод Configure(). Вскоре вы сможете убедиться, что этот статический член позволяет доменам приложений клиента и сервера использовать файлы конфигурации удаленного взаимодействия.