Если требуются другие используемые по умолчанию значения параметров времени жизни, в зависимости от типа удаленного объекта, можно изменить конфигурацию аренды удаленного объекта, переопределяя метод
InitializeLifetimeService
базового класса
MarshalByRefObject
:
public class Hello : System.MarshalByRefObject {
public Hello {
Console.WriteLine("Constructor called");
}
~Hello {
Console.WriteLine("Destructor called");
}
public override Object InitializeLifetimeService {
Конфигурация служб времени жизни также задается с помощью конфигурационного файла.
Конфигурационные файлы
Вместо записи конфигурации канала и объекта в исходном коде, можно использовать конфигурационные файлы. Таким способом реконфигурируют канал, добавляют дополнительные каналы и т.д., не изменяя исходный код. Для этого, как и для всех других конфигурационных файлов на платформе .NET. используется XML на основе тех же самых приложений, о которых было написано в главе 10. В те же самые файлы в главе 25 будет добавлена конфигурация системы безопасности. В .NET Remoting имеются атрибуты и элементы XML для конфигурирования канала и удаленных объектов. Файл должен иметь то же самое имя, что и исполнимый файл, за которым следует
.config
. Для сервера
HelloServer.exe
конфигурационным файлом будет
HelloServer.exe.config
. В коде, загружаемом с web-сайта издательства Wrox, можно найти примеры конфигурационных файлов в корневом каталоге примеров с именами
clientactivated.config
,
wellknown.config
и
wellknownhttp.config
. Чтобы воспользоваться ими, переименуйте их, как показано выше, и поместите в каталог, содержащий исполнимый файл.
Вот только один пример, как мог бы выглядеть такой файл. Мы рассмотрим все различные конфигурационные параметры: