Example #1
0
        public T Deserialize <T>(object serializedData)
        {
            using (EneterTrace.Entering())
            {
                if (serializedData is byte[] == false)
                {
                    throw new ArgumentException("Input parameter 'serializedData' is not byte[].");
                }

                if (typeof(T) != typeof(MessageBusMessage))
                {
                    throw new InvalidOperationException("Data can be deserialized only into" + typeof(MessageBusMessage).Name);
                }

                MessageBusMessage aResult;

                byte[] aData = (byte[])serializedData;

                using (MemoryStream aStream = new MemoryStream(aData))
                {
                    BinaryReader aReader = new BinaryReader(aStream);

                    // Read message bus request.
                    int aRequest = aReader.ReadByte();
                    EMessageBusRequest aMessageBusRequest = (EMessageBusRequest)aRequest;

                    // Read Id
                    string anId = myEncoderDecoder.ReadPlainString(aReader, Encoding.UTF8, myIsLittleEndian);

                    // Read message data.
                    object aMessageData = null;
                    if (aMessageBusRequest == EMessageBusRequest.SendRequestMessage ||
                        aMessageBusRequest == EMessageBusRequest.SendResponseMessage)
                    {
                        aMessageData = myEncoderDecoder.Read(aReader, myIsLittleEndian);
                    }


                    aResult = new MessageBusMessage(aMessageBusRequest, anId, aMessageData);
                    return((T)(object)aResult);
                }
            }
        }
Example #2
0
 /// <summary>
 /// Constructs the message.
 /// </summary>
 /// <param name="request">Requested from the message bus.</param>
 /// <param name="id">Depending on the request it is client id or service id.</param>
 /// <param name="messageData">If the request is SendRequestMessage or SendResponseMessage it is the serialized message data.
 /// Otherwise it is null.
 /// </param>
 public MessageBusMessage(EMessageBusRequest request, string id, object messageData)
 {
     Request     = request;
     Id          = id;
     MessageData = messageData;
 }