MarshalByRefObject.InitializeLifetimeService Method     
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Caution
This Remoting API is not supported and throws PlatformNotSupportedException.
Obtains a lifetime service object to control the lifetime policy for this instance.
public:
 virtual System::Object ^ InitializeLifetimeService();[System.Obsolete("This Remoting API is not supported and throws PlatformNotSupportedException.", DiagnosticId="SYSLIB0010", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public virtual object InitializeLifetimeService();public virtual object InitializeLifetimeService();[System.Security.SecurityCritical]
public virtual object InitializeLifetimeService();[<System.Obsolete("This Remoting API is not supported and throws PlatformNotSupportedException.", DiagnosticId="SYSLIB0010", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
abstract member InitializeLifetimeService : unit -> obj
override this.InitializeLifetimeService : unit -> objabstract member InitializeLifetimeService : unit -> obj
override this.InitializeLifetimeService : unit -> obj[<System.Security.SecurityCritical>]
abstract member InitializeLifetimeService : unit -> obj
override this.InitializeLifetimeService : unit -> objPublic Overridable Function InitializeLifetimeService () As ObjectReturns
An object of type ILease used to control the lifetime policy for this instance. This is the current lifetime service object for this instance if one exists; otherwise, a new lifetime service object initialized to the value of the LeaseManagerPollTime property.
- Attributes
Exceptions
The immediate caller does not have infrastructure permission.
.NET Core and .NET 5+ only: In all cases.
Examples
The following code example demonstrates creating a 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 : 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;
  }
}
type MyClass() =
    inherit MarshalByRefObject()
   
    override _.InitializeLifetimeService() =
        let lease = base.InitializeLifetimeService() :?> ILease
        if lease.CurrentState = LeaseState.Initial then
            lease.InitialLeaseTime <- TimeSpan.FromMinutes 1
            lease.SponsorshipTimeout <- TimeSpan.FromMinutes 2
            lease.RenewOnCallTime <- TimeSpan.FromSeconds 2
        lease
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
Remarks
This method is marked obsolete starting in .NET 5.
For more information about lifetime services, see the LifetimeServices class.