다음을 통해 공유


임대 초기화

MarshalByRefObject 인스턴스(MBR)는 자체의 임대 기간을 만들 수도 있고, 응용 프로그램 또는 시스템 구성 파일의 <lifetime> 요소에 지정된 임대 속성을 사용하도록 구성될 수도 있습니다. 수명 속성은 임대가 초기 상태에 있을 때 즉, InitializeLifetimeService에 대한 호출에서 임대가 만들어질 때만 설정할 수 있으며 이후 호출에서는 설정할 수 없습니다.

InitializeLifetimeService 재정의

재정의된 InitializeLifetimeService에서 ILease lease = (ILease)base.InitializeLifetimeService(); 메서드가 호출되면 해당 개체에 대해 기존 임대가 반환되거나 임대가 없을 경우 새로운 임대가 반환됩니다. 새 임대가 반환되는 경우에만 임대 속성을 설정할 수 있으며, 이 때 상태가 LeaseState.Initial인지 확인해야 합니다. 그렇지 않으면 예외가 throw됩니다.

수명 서비스에 영향을 주는 유일한 호출은 해당 임대를 활성화하는 호출로서 .NET Remoting 인프라에서 InitializeLifetimeService를 호출하는 경우입니다. 다른 코드에서 InitializeLifetimeService를 호출하고 임대를 만들 수도 있지만 .NET Remoting 인프라에 임대가 반환될 때까지는 해당 임대가 초기 상태로 있습니다. 초기 상태에 있지 않은 기존 임대는 새 값으로 설정할 수 없습니다. 하지만 한 개체에 대한 여러 싱크가 동일한 임대를 가리킬 수 있도록 하기 위해 새 싱크가 인프라에 임대 값을 반환할 수는 있습니다.

임대 기간이 0(영)이거나 null 임대가 반환되면 임대가 만들어지지 않습니다. RenewOnCallTime이 0(영)이면 싱크는 만들어지지 않지만 임대는 만들어집니다.

InitializeLifetimeService의 구현에서는 보통 해당 기본 클래스의 메서드를 호출하여 원격 개체에 대한 기존 임대를 검색합니다. 개체가 이전에 마샬링된 적이 없으면 임대는 초기 상태로 반환되므로 임대 속성을 설정할 수 있습니다. 반면 개체가 마샬링된 적이 있는 경우에는 임대가 초기 상태에서 활성 상태로 바뀌며 임대 속성을 초기화하려는 시도는 모두 무시되고 예외가 throw됩니다. InitializeLifetimeService는 원격 개체가 활성화될 때 호출됩니다. 임대가 활성 상태인 동안에는 언제든지 임대를 위한 스폰서 목록을 활성화 호출에 제공하고 스폰서를 추가할 수 있습니다.

InitializeLifetimeService 인터페이스를 재정의하는 방법은 asdasdasdasdasdasd를 참조하십시오.

참고 항목

작업

방법: InitializeLifetimeService 인터페이스 재정의

개념

임대 갱신
원격 서비스 예: 수명
수명 임대