/// <summary> /// Process this IRequest and update the given <b>Response</b> with /// the result. /// </summary> /// <remarks> /// Implementations of this method are free to throw an exception /// while processing the IRequest. An exception will result in the /// <b>Response</b> being marked as a failure that the /// <b>Response</b> result will be the exception itself. /// </remarks> /// <param name="response"> /// The <b>Response</b> that will be sent back to the requestor. /// </param> /// <exception cref="Exception"> /// If exception occurs during execution. /// </exception> protected override void OnRun(Response response) { Connection connection = Connection; Debug.Assert(connection != null); IChannel channel0 = Channel; IPrincipal principal = Principal; Peer peer = (Peer)channel0.Receiver; response.Result = connection.AcceptChannelInternal( ChannelUri, peer.EnsureSerializer(), Receiver, principal, IdentityToken); }