protected override IAsyncResult OnBeginAcceptChannel(TimeSpan timeout, AsyncCallback callback, object state)
        {
            AcceptChannelDelegate d      = new AcceptChannelDelegate(this.AcceptChannel);
            IAsyncResult          result = d.BeginInvoke(timeout, callback, state);

            return(result);
        }
        protected override IInputSessionChannel OnEndAcceptChannel(IAsyncResult result)
        {
            System.Runtime.Remoting.Messaging.AsyncResult aresult = result as System.Runtime.Remoting.Messaging.AsyncResult;
            if (aresult == null)
            {
                throw new ArgumentException("Invalid IAsyncResult type");
            }
            AcceptChannelDelegate d = aresult.AsyncDelegate as AcceptChannelDelegate;

            return(d.EndInvoke(result));
        }