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); }
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); } }
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); } }