Exemplo n.º 1
0
        public override IMessageEnvelope DeserializeMessageEnvelope(String messageEnvelope)
        {
            String messageName = this.GetMessageName(messageEnvelope);

            Type dataContractType = this.DataContractResolver.ResolveContract(messageName).MessageEnvelopeDataContractType;

            try
            {
                Object?deserializedObject = JsonSerializer.Deserialize(messageEnvelope, dataContractType, JsonSerializationSettings.DeserializerOptions);

                IDataContract <IMessageEnvelope>?envelopeDataContract = (IDataContract <IMessageEnvelope>?)(deserializedObject);

                if (envelopeDataContract is null)
                {
                    throw Assert.Exception(this.GetDeserializationException(messageEnvelope, null));
                }

                return(envelopeDataContract.GetDataObject());
            }catch (Exception ex)
            {
                throw Assert.Exception(this.GetDeserializationException(messageEnvelope, ex));
            }
        }
Exemplo n.º 2
0
        public override IMessageEnvelope DeserializeMessageEnvelope(String messageEnvelope)
        {
            String messageName = this.GetMessageName(messageEnvelope);

            Type dataContractType = this.DataContractResolver.ResolveContract(messageName).MessageEnvelopeDataContractType;

            try
            {
                using (StringReader input = new StringReader(messageEnvelope))
                {
                    using (XmlReader reader = XmlReader.Create(input, XmlSerializationSettings.ReaderSettings))
                    {
                        XmlSerializer serializer = SerializationManager.GetSerializer(dataContractType);

                        IDataContract <IMessageEnvelope> envelopeDataContract = (IDataContract <IMessageEnvelope>)(serializer.Deserialize(reader));

                        return(envelopeDataContract.GetDataObject());
                    }
                }
            }catch (Exception ex)
            {
                throw Assert.Exception(new MessageSerializationException($"Deserialization of message envelope (truncated) '{ messageEnvelope.Truncate() }' failed.", ex));
            }
        }