/// <summary> /// Verifies that a lease is registered/unregistered for the lifetime service. /// </summary> /// <param name="lease">The lease that is checked.</param> /// <param name="checkRegistered">if set to <c>true</c> it is checked that it is registered otherwise /// it must be unregistered.</param> private void VerifyLifetimeServiceRegistered(ILease lease, bool checkRegistered) { Hashtable sponsorTable = (Hashtable)lease.GetType() .GetField("sponsorTable", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(lease); string message = checkRegistered ? "Expected lifetime service to be registered." : "Expected lifetime service to be unregistered."; Assert.AreEqual(checkRegistered, sponsorTable.Contains(this.asyncResult), message); }
protected virtual void Dispose(bool disposing) { try { DoDispose(); } finally { ILease lease = (ILease)GetLifetimeService(); if (lease != null) { lease.GetType().GetMethod("Remove", BindingFlags.Instance | BindingFlags.NonPublic).Invoke(lease, null); } RemotingServices.Disconnect(this); } }
protected virtual void Dispose(bool disposing) { #if USEFINALIZER GC.SuppressFinalize(this); #endif try { DoDispose(); } finally { ILease lease = (ILease)GetLifetimeService(); if (lease != null) { // Calling cancel on the lease will invoke disconnect on the lease and the server object lease.GetType().GetMethod("Cancel", BindingFlags.Instance | BindingFlags.NonPublic).Invoke(lease, null); } else { RemotingServices.Disconnect(this); } } }