4

我有一个继承自 的类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,但我一无所获。

谢谢!

4

1 回答 1

2

当租约到期时,将ISponsor.Renewal在对象的发起人上调用该方法。因此,您可以ISponsor自己实现并将您的逻辑放在那里。

为此,您需要ILease.Register在 的实现中调用该方法InitializeLifetimeService,并将您的ISponsor作为参数传递。

于 2014-03-01T12:10:04.020 回答