4

から継承するクラスがありMarshalByRefObject、その中でライフタイム サービスをオーバーライドしてInitialLeaseTime2 時間の値を与えています。

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 を検索しましたが、何も見つかりませんでした。

ありがとう!

4

1 に答える 1

2

リースの有効期限が切れるISponsor.Renewalと、オブジェクトのスポンサーでメソッドが呼び出されます。したがって、自分で実装ISponsorしてロジックをそこに置くことができます。

ILease.Registerこれを行うには、 の実装でメソッドを呼び出し、 yourを引数としてInitializeLifetimeService渡す必要があります。ISponsor

于 2014-03-01T12:10:04.020 に答える