/// <summary> /// Deserializes a raw message from the given message. /// </summary> /// <param name="message"></param> /// <returns></returns> public object Deserialize(Message message) { if (message == null || message.Body == null || message.Body.Length == 0) { return null; } var stream = new MemoryStream(message.Body); var body = _binaryFormatter.Deserialize(stream) as List<object>; if (body == null || body.Count == 0) { return null; } var json = body.First() as string; if (string.IsNullOrEmpty(json)) { return null; } var messageTypeFullName = message.Headers[TransportHeaderKeys.MessageFullTypeName]; if (string.IsNullOrEmpty(messageTypeFullName)) { return null; } var messageType = Type.GetType(messageTypeFullName); return _jsonSerializer.Deserialize(json, messageType); }
/// <summary> /// Deserializes a raw message from the given message. /// </summary> /// <param name="message"></param> /// <returns></returns> public object Deserialize(Message message) { if (message == null || message.Body == null || message.Body.Length == 0) { return null; } var stream = new MemoryStream(message.Body); var body = _binaryFormatter.Deserialize(stream) as List<object>; if (body == null || body.Count == 0) { return null; } return body.First(); }
private Message CreateMessage(object evnt) { var result = new Message { MessageIntent = MessageIntentEnum.Publish }; var stream = new MemoryStream(); _messageSerializer.Serialize(evnt, stream); result.Headers = new Dictionary<string, string>(); result.Headers.Add(TransportHeaderKeys.MessageFullTypeName, evnt.GetType().AssemblyQualifiedName); result.Body = stream.ToArray(); result.Recoverable = true; result.TimeToBeReceived = TimeSpan.MaxValue; return result; }