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 属性的值的新生存期服务对象。
异常
异常类型 | 条件 |
---|---|
直接调用方没有基础结构权限。 |
备注
有关生存期服务的更多信息,请参见 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 安全性
- SecurityPermission 用于操作基础结构代码。关联的枚举:SecurityPermissionFlag.Infrastructure
平台
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