初始化使用期
MarshalByRefObject 執行個體 (MBR) 可以建立自己的使用期期限,或者,您可將這些執行個體設定為使用應用程式或電腦組態檔之 <lifetime> 項目中所指定的使用期屬性。只有在使用期為初始狀態 (即呼叫 InitializeLifetimeService 來建立它) 時,設定存留期屬性才有作用;後續呼叫不會有任何影響。
覆寫 InitializeLifetimeService
在覆寫的 InitializeLifetimeService 中呼叫 ILease lease = (ILease)base.InitializeLifetimeService();
方法時,會傳回物件的現有使用期或新的使用期 (如果沒有使用期)。只有當傳回新使用期時,才可設定使用期屬性;您必須確定狀態為 LeaseState.Initial,否則會擲回例外狀況。
唯一會影響存留期服務的呼叫,是從 .NET 遠端處理基礎結構對 InitializeLifetimeService 的呼叫,這樣的呼叫會啟動使用期。其他程式碼可以呼叫 InitializeLifetimeService 並建立使用期,但該使用期會一直停留在初始狀態,直到傳回給 .NET 遠端處理基礎結構為止。雖然新的接收可以將不在初始狀態的現有使用期傳回給基礎結構,以使物件的多個接收都指向相同使用期,但仍無法將該使用期設定為新值。
如果使用期是 0 (零),或傳回 Null 使用期,則不會建立任何使用期。如果 RenewOnCallTime 是 0 (零),則不會建立任何接收,但會建立使用期。
InitializeLifetimeService 的實作通常會呼叫基底類別的對應方法,以擷取遠端物件的現有使用期。如果之前未曾封送處理過物件,則傳回的使用期會是初始狀態,而且可以設定使用期屬性。一旦封送處理過物件後,使用期會從初始變成使用中狀態,任何想將初始化使用期屬性的嘗試都會被忽略 (擲回例外狀況)。啟動遠端物件時,會呼叫 InitializeLifetimeService。啟動呼叫中會提供使用期的發起者清單,而您可以在使用期為使用中時,隨時加入其他發起者。
如需如何覆寫 InitializeLifetimeService 介面的詳細資訊,請參閱 asdasdasdasdasdasd。
請參閱
工作
如何覆寫 InitializeLifetimeService 介面