我有一个继承自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;
}
现在,我想在租约到期时执行一些逻辑.到期时是否有事件或挂钩?我搜索过谷歌和MSDN,但我什么都没发现.
谢谢!
最佳答案 当租约到期时,ISponsor.Renewal方法正在对象的赞助商上调用.
因此,您可以自己实施ISponsor并将逻辑放在那里.
为此,您需要在InitializeLifetimeService的实现中调用ILease.Register方法,并将您的ISponsor作为参数传递.