public static void Send <T>(this IEndpoint endpoint, T message, Action <IOutboundMessage> messageHeaderAction)
            where T : class
        {
            OutboundMessage.Set(messageHeaderAction);

            endpoint.Send(message);
        }
        public static void Publish <T>(this IServiceBus bus, T message, Action <IOutboundMessage> messageHeaderAction)
            where T : class
        {
            OutboundMessage.Set(messageHeaderAction);

            bus.Publish(message);
        }
示例#3
0
        private void VerifyMessageHeaderIsPassed(Action <IOutboundMessage> setHeaderAction, Action <IInboundMessageHeaders> checkHeaderAction)
        {
            byte[] data;
            var    serializer = new XmlMessageSerializer();

            OutboundMessage.Set(setHeaderAction);

            var message = new PingMessage();

            using (MemoryStream output = new MemoryStream())
            {
                serializer.Serialize(output, message);

                data = output.ToArray();
            }

            Trace.WriteLine(OutboundMessage.Headers.MessageType);

            Trace.WriteLine(Encoding.UTF8.GetString(data));

            using (MemoryStream input = new MemoryStream(data))
            {
                serializer.Deserialize(input);

                checkHeaderAction(CurrentMessage.Headers);
            }
        }
        public void The_xml_message_serializer_should_rock_the_house()
        {
            byte[] serializedMessageData;

            var serializer = new XmlMessageSerializer();

            OutboundMessage.Set(x =>
            {
                x.SetSourceAddress("msmq://localhost/queue_name");
                x.SetDestinationAddress("msmq://remotehost/queue_name");
                x.SetResponseAddress("msmq://localhost/response_queue");
                x.SetFaultAddress("msmq://localhost/fault_queue");
                x.SetRetryCount(7);
            });

            using (MemoryStream output = new MemoryStream())
            {
                serializer.Serialize(output, _message);

                serializedMessageData = output.ToArray();

                Trace.WriteLine(Encoding.UTF8.GetString(serializedMessageData));
            }

            using (MemoryStream input = new MemoryStream(serializedMessageData))
            {
                SerializationTestMessage receivedMessage = serializer.Deserialize(input) as SerializationTestMessage;

                Assert.AreEqual(_message, receivedMessage);
            }
        }
示例#5
0
        protected void TestSerialization <T>(T message)
        {
            byte[] data;
            var    serializer = new XmlMessageSerializer();

            _sourceUri      = new Uri("loopback://localhost/source");
            _responseUri    = new Uri("loopback://localhost/response");
            _faultUri       = new Uri("loopback://localhost/fault");
            _destinationUri = new Uri("loopback://localhost/destination");
            _retryCount     = 69;

            OutboundMessage.Set(x =>
            {
                x.SetSourceAddress(_sourceUri);
                x.SendResponseTo(_responseUri);
                x.SendFaultTo(_faultUri);
                x.SetDestinationAddress(_destinationUri);
                x.SetRetryCount(_retryCount);
            });

            using (MemoryStream output = new MemoryStream())
            {
                serializer.Serialize(output, message);

                data = output.ToArray();
            }

            Trace.WriteLine(OutboundMessage.Headers.MessageType);

            Trace.WriteLine(Encoding.UTF8.GetString(data));

            using (MemoryStream input = new MemoryStream(data))
            {
                object receivedMessage = serializer.Deserialize(input);

                Assert.AreEqual(message, receivedMessage);
                Assert.AreNotSame(message, receivedMessage);

                Assert.AreEqual(_retryCount, CurrentMessage.Headers.RetryCount);
                Assert.AreEqual(_sourceUri, CurrentMessage.Headers.SourceAddress);
                Assert.AreEqual(_responseUri, CurrentMessage.Headers.ResponseAddress);
                Assert.AreEqual(_faultUri, CurrentMessage.Headers.FaultAddress);
                Assert.AreEqual(_destinationUri, CurrentMessage.Headers.DestinationAddress);
                //			Assert.AreEqual(message.GetType().ToMessageName(), CurrentMessage.Headers.MessageType);
            }
        }