【问题标题】:Can I hook into the expiration of a remoting object?我可以挂钩远程对象的到期吗?
【发布时间】:2014-02-28 19:25:11
【问题描述】:

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

谢谢!

【问题讨论】:

    标签: .net remoting .net-remoting marshalbyrefobject


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2013-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 2011-12-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多