임대 초기화
이 항목은 이전 버전의 기존 응용 프로그램과의 호환성을 위해 유지되고 있으나 새로운 개발에는 권장되지 않는 레거시 기술에 대해 설명합니다. 분산 응용 프로그램은 이제 WCF(Windows Communication Foundation)를 사용하여 개발됩니다.
MarshalByRefObject 파생 클래스가 인스턴스화될 때 .NET Remoting 프레임워크는 개체의 InitializeLifetimeService 메서드를 호출합니다. 이 메서드는 원격 개체에 대한 기본 수명 값이 포함된 임대 개체를 반환합니다. 서버 응용 프로그램 구성 파일에 대체 값을 지정하거나(<lifetime> 요소를 사용) InitializeLifetimeService를 재정의하여 이 기본값을 수정할 수 있습니다.
구성 파일에 대체 값을 지정할 때는 서버 응용 프로그램이 호스트하는 모든 개체에 대한 기본 수명 값이 변경됩니다. InitializeLifetimeService를 재정의하면 특정 클래스에 대한 기본 수명 값을 변경할 수 있습니다.
InitializeLifetimeService 재정의
InitializeLifetimeService를 재정의할 때는 CurrentState의 값을 확인해야 합니다. CurrentState가 Initial과 같을 때만 임대 값을 변경할 수 있습니다.
수명 서비스에 영향을 주는 유일한 호출은 임대를 활성화하는 .NET Remoting 인프라에서의 InitializeLifetimeService 호출입니다. 다른 코드는 InitializeLifetimeService 를 호출하고 임대를 만들 수 있지만 해당 임대는 .NET Remoting 인프라로 반환되기 전까지 초기 상태에 남아 있습니다.
InitializeLifetimeService에서 null을 반환하면 개체의 수명은 무한이며 호스팅 응용 프로그램 도메인이 언로드되기 전까지는 가비지 수집되지 않습니다.
InitializeLifetimeService의 구현은 일반적으로 기본 클래스의 해당 메서드를 호출하여 원격 개체의 기존 임대를 검색합니다. 개체가 마샬링되지 않은 경우 반환된 임대는 초기 상태에 있으며 임대 속성을 설정할 수 있습니다. 개체가 마샬링되면 임대는 초기 상태에서 활성 상태로 바뀌고 임대 속성을 초기화하려는 모든 시도가 무시되며 예외가 throw됩니다. InitializeLifetimeService는 원격 개체가 활성화될 때 호출됩니다. 임대에 대한 스폰서 목록은 활성화 호출과 함께 제공될 수 있으며 임대가 활성화 상태일 때 언제라도 스폰서를 더 추가할 수 있습니다.
InitializeLifetimeService 메서드 재정의 방법에 대한 자세한 내용은 방법: InitializeLifetimeService 인터페이스 재정의를 참조하십시오.
참고 항목
작업
방법: InitializeLifetimeService 인터페이스 재정의