Share via


MarshalByRefObject.InitializeLifetimeService メソッド

対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。

Public Overridable Function InitializeLifetimeService() As Object
[C#]
public virtual object InitializeLifetimeService();
[C++]
public: virtual Object* InitializeLifetimeService();
[JScript]
public function InitializeLifetimeService() : Object;

戻り値

対象のインスタンスの有効期間ポリシーを制御するときに使用する、 ILease 型のオブジェクト。存在する場合は、このインスタンスの現在の有効期間サービス オブジェクトです。それ以外の場合は、 LifetimeServices.LeaseManagerPollTime プロパティの値に初期化された新しい有効期間サービス オブジェクトです。

例外

例外の種類 条件
SecurityException 直前の呼び出し元に、インフラストラクチャ アクセス許可がありません。

解説

有効期間サービスの詳細については、 LifetimeServices クラスのトピックを参照してください。

使用例

[Visual Basic, C#, C++] リースを作成するコード例を次に示します。

 
Public Class LSClass
    Inherits MarshalByRefObject
    
    Public Overrides Function InitializeLifetimeService() As Object
        Dim lease As ILease = CType(MyBase.InitializeLifetimeService(), ILease)
        If lease.CurrentState = LeaseState.Initial Then
            lease.InitialLeaseTime = TimeSpan.FromMinutes(1)
            lease.SponsorshipTimeout = TimeSpan.FromMinutes(2)
            lease.RenewOnCallTime = TimeSpan.FromSeconds(2)
        End If
        Return lease
    End Function


    Public Shared Sub Main()  
    ' The main thread processing is here.
    End Sub
End Class


[C#] 
public class MyClass : MarshalByRefObject
{
  public override Object InitializeLifetimeService()
  {
    ILease lease = (ILease)base.InitializeLifetimeService();
    if (lease.CurrentState == LeaseState.Initial)
    {
         lease.InitialLeaseTime = TimeSpan.FromMinutes(1);
         lease.SponsorshipTimeout = TimeSpan.FromMinutes(2);
          lease.RenewOnCallTime = TimeSpan.FromSeconds(2);
    }
      return lease;
  }
}

[C++] 
public __gc class MyClass : public MarshalByRefObject
{
public:
  Object* InitializeLifetimeService()
  {
    ILease* lease = dynamic_cast<ILease*>(MarshalByRefObject::InitializeLifetimeService());
    if (lease->CurrentState == LeaseState::Initial)
    {
         lease->InitialLeaseTime = TimeSpan::FromMinutes(1);
         lease->SponsorshipTimeout = TimeSpan::FromMinutes(2);
         lease->RenewOnCallTime = TimeSpan::FromSeconds(2);
    }
    return lease;
  }
};

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

.NET Framework セキュリティ:

参照

MarshalByRefObject クラス | MarshalByRefObject メンバ | System 名前空間