private static object Transform()

in Source/Tx.Core/TypeMap/EnvelopeTypeMap.cs [94:128]


        private static object Transform(
            IEnvelope envelope,
            bool handleTransportObject,
            IReadOnlyDictionary<string, Func<byte[], object>> deserializerMap)
        {
            if (envelope.PayloadInstance != null)
            {
                return handleTransportObject ? envelope.PayloadInstance : null;
            }
            if (envelope.Payload == null)
            {
                return null;
            }

            object deserializedObject;

            try
            {
                Func<byte[], object> transform;
                if (deserializerMap.TryGetValue(envelope.Protocol, out transform))
                {
                    deserializedObject = transform(envelope.Payload);
                }
                else
                {
                    deserializedObject = null;
                }
            }
            catch
            {
                deserializedObject = null;
            }

            return deserializedObject;
        }