internal ServicedComponent DisconnectForPooling(ref ProxyTearoff proxyTearoff)
 {
     if (this._fIsServerActivated)
     {
         this.DispatchDeactivate();
     }
     proxyTearoff = this._proxyTearoff;
     this._proxyTearoff = null;
     if (base.GetUnwrappedServer() != null)
     {
         return (ServicedComponent) base.DetachServer();
     }
     return null;
 }
 internal ProxyTearoff GetProxyTearoff()
 {
     if (this._proxyTearoff == null)
     {
         if (Util.ExtendedLifetime)
         {
             this._proxyTearoff = new WeakProxyTearoff();
         }
         else
         {
             this._proxyTearoff = new ClassicProxyTearoff();
         }
         this._proxyTearoff.Init(this);
     }
     return this._proxyTearoff;
 }
 internal void ConnectForPooling(ServicedComponentProxy oldscp, ServicedComponent server, ProxyTearoff proxyTearoff, bool fForJit)
 {
     if (oldscp != null)
     {
         this._fReturnedByFinalizer = oldscp._fFinalized;
         if (fForJit)
         {
             this._pPoolUnk = oldscp._pPoolUnk;
             oldscp._pPoolUnk = IntPtr.Zero;
         }
     }
     if (server != null)
     {
         base.AttachServer(server);
     }
     this._proxyTearoff = proxyTearoff;
     this._proxyTearoff.Init(this);
 }