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