MarshalByRefObject.InitializeLifetimeService 方法

获取控制此实例的生存期策略的生存期服务对象。

**命名空间:**System
**程序集:**mscorlib(在 mscorlib.dll 中)

语法

声明
Public Overridable Function InitializeLifetimeService As Object
用法
Dim instance As MarshalByRefObject
Dim returnValue As Object

returnValue = instance.InitializeLifetimeService
public virtual Object InitializeLifetimeService ()
public:
virtual Object^ InitializeLifetimeService ()
public Object InitializeLifetimeService ()
public function InitializeLifetimeService () : Object

返回值

ILease 类型的对象,用于控制此实例的生存期策略。这是此实例当前的生存期服务对象(如果存在);否则为初始化为 LifetimeServices.LeaseManagerPollTime 属性的值的新生存期服务对象。

异常

异常类型 条件

SecurityException

直接调用方没有基础结构权限。

备注

有关生存期服务的更多信息,请参见 LifetimeServices 类。

示例

下面的代码示例展示创建租约。

Public Class LSClass
    Inherits MarshalByRefObject
    
    <SecurityPermissionAttribute(SecurityAction.Demand, _
                                 Flags:=SecurityPermissionFlag.Infrastructure)> _
    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
public class MyClass : MarshalByRefObject
{
  [SecurityPermissionAttribute(SecurityAction.Demand, 
                               Flags=SecurityPermissionFlag.Infrastructure)]
  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;
  }
}
public ref class MyClass: public MarshalByRefObject
{
public:
   
   [System::Security::Permissions::SecurityPermissionAttribute
   (System::Security::Permissions::SecurityAction::Demand,
   Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)]
   virtual Object^ InitializeLifetimeService() override
   {
      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;
   }

};
public class MyClass extends MarshalByRefObject
{
    /** @attribute System.Security.Permissions.SecurityPermissionAttribute(System.Security.
        Permissions.SecurityAction.Demand, Flags=System.Security.Permissions.SecurityPermissionFlag.Infrastructure)
     */
    public Object InitializeLifetimeService()
    {
        ILease lease = (ILease)(super.InitializeLifetimeService());
        if (lease.get_CurrentState().Equals(LeaseState.Initial)) {
            lease.set_InitialLeaseTime(TimeSpan.FromMinutes(1));
            lease.set_SponsorshipTimeout(TimeSpan.FromMinutes(2));
            lease.set_RenewOnCallTime(TimeSpan.FromSeconds(2));
        }
        return lease;
    } //InitializeLifetimeService
} //MyClass

.NET Framework 安全性

平台

Windows 98、Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

请参见

参考

MarshalByRefObject 类
MarshalByRefObject 成员
System 命名空间