2014-02-28 79 views
3

我從MarshalByRefObject繼承的類,並在它我重寫終身服務給它兩個InitialLeaseTime一個小時:我可以掛鉤遠程對象的到期嗎?

public override object InitializeLifetimeService() 
{ 
    // Expire after two hours. 
    var lease = (ILease)base.InitializeLifetimeService(); 
    if (lease.CurrentState == LeaseState.Initial) 
     lease.InitialLeaseTime = TimeSpan.FromHours(2); 

    return lease; 
} 

現在,我想在租約到期執行一些邏輯。到期是否有事件或掛鉤?我搜索了Google和MSDN,但我什麼也沒找到。

謝謝!

回答

1

當租約到期時,ISponsor.Renewal方法正在對象的贊助者上被調用。因此,你可以自己實現ISponsor,並把你的邏輯放在那裏。

要做到這一點,你需要調用ILease.Register方法在實施InitializeLifetimeService,通過你的ISponsor作爲參數。

相關問題