/// <summary> /// Execute the action specific to the Message implementation. /// </summary> public override void Run() { Channel channel0 = (Channel)Channel; Debug.Assert(channel0.Id == 0); if (IsFailure) { return; } // extract the new Channel configuration from the AcceptChannelRequest AcceptChannelRequest request = (AcceptChannelRequest)channel0.GetRequest(RequestId); Debug.Assert(request != null); Connection connection = (Connection)channel0.Connection; int id = request.ChannelId; IMessageFactory factory = request.MessageFactory; IReceiver receiver = request.Receiver; ISerializer serializer = request.Serializer; IPrincipal principal = request.Principal; Result = connection.AcceptChannelResponse(id, factory, serializer, receiver, principal); }