.net – 我可以挂钩到远程对象的到期吗?

我有一个继承自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作为参数传递.

点赞