コード例 #1
0
 public void Dispose()
 {
     if (!this.IsDisposed)
     {
         if (_subscription.Recoverable && !MessageQueue.Exists(_queuePath))
         {
             MessageQueue.Create(this._queuePath);
         }
         try {
             _serverDisposable.Dispose();
             var serverLease = (ILease)RemotingServices.GetLifetimeService((MarshalByRefObject)_serverDisposable);
             if (serverLease != null)
             {
                 serverLease.Unregister(Sponsor);
             }
         } catch { } finally {
             _isDisposed   = true;
             _subscription = null;
         }
     }
 }