Beispiel #1
0
        public TDestination Adapt <TSource, TDestination>(TSource source, TDestination destination)
        {
            var fn = _config.GetMapToTargetFunction <TSource, TDestination>();

            try
            {
                return(fn(source, destination));
            }
            finally
            {
                MapContext.Clear();
            }
        }
Beispiel #2
0
        /// <summary>
        /// Adapte the source object to the existing destination object.
        /// </summary>
        /// <typeparam name="TSource">Source type.</typeparam>
        /// <typeparam name="TDestination">Destination type.</typeparam>
        /// <param name="source">Source object to adapt.</param>
        /// <param name="destination">The destination object to populate.</param>
        /// <param name="config">Configuration</param>
        /// <returns>Adapted destination type.</returns>
        public static TDestination Adapt <TSource, TDestination>(TSource source, TDestination destination, TypeAdapterConfig config = null)
        {
            config = config ?? TypeAdapterConfig.GlobalSettings;
            var fn = config.GetMapToTargetFunction <TSource, TDestination>();

            try
            {
                return(fn(source, destination));
            }
            finally
            {
                MapContext.Clear();
            }
        }
Beispiel #3
0
        /// <summary>
        /// Adapte the source object to an existing destination object.
        /// </summary>
        /// <param name="source">Source object to adapt.</param>
        /// <param name="destination">Destination object to populate.</param>
        /// <param name="sourceType">The type of the source object.</param>
        /// <param name="destinationType">The type of the destination object.</param>
        /// <param name="config">Configuration</param>
        /// <returns>Adapted destination type.</returns>
        public static object Adapt(object source, object destination, Type sourceType, Type destinationType, TypeAdapterConfig config = null)
        {
            config = config ?? TypeAdapterConfig.GlobalSettings;
            dynamic fn = config.GetMapToTargetFunction(sourceType, destinationType);

            try
            {
                return(fn((dynamic)source, (dynamic)destination));
            }
            finally
            {
                MapContext.Clear();
            }
        }
Beispiel #4
0
        /// <summary>
        /// Adapt the source object to an existing destination object.
        /// </summary>
        /// <param name="source">Source object to adapt.</param>
        /// <param name="destination">Destination object to populate.</param>
        /// <param name="sourceType">The type of the source object.</param>
        /// <param name="destinationType">The type of the destination object.</param>
        /// <param name="config">Configuration</param>
        /// <returns>Adapted destination type.</returns>
        public static object Adapt(this object source, object destination, Type sourceType, Type destinationType, TypeAdapterConfig config)
        {
            var del = config.GetMapToTargetFunction(sourceType, destinationType);

            if (sourceType.GetTypeInfo().IsVisible&& destinationType.GetTypeInfo().IsVisible)
            {
                dynamic fn = del;
                return(fn((dynamic)source, (dynamic)destination));
            }
            else
            {
                //NOTE: if type is non-public, we cannot use dynamic
                //DynamicInvoke is slow, but works with non-public
                return(del.DynamicInvoke(source, destination));
            }
        }
Beispiel #5
0
        public TDestination Adapt <TSource, TDestination>(TSource source, TDestination destination)
        {
            var fn = _config.GetMapToTargetFunction <TSource, TDestination>();

            return(fn(source, destination));
        }
Beispiel #6
0
        /// <summary>
        /// Adapt the source object to the existing destination object.
        /// </summary>
        /// <typeparam name="TSource">Source type.</typeparam>
        /// <typeparam name="TDestination">Destination type.</typeparam>
        /// <param name="source">Source object to adapt.</param>
        /// <param name="destination">The destination object to populate.</param>
        /// <param name="config">Configuration</param>
        /// <returns>Adapted destination type.</returns>
        public static TDestination Adapt <TSource, TDestination>(this TSource source, TDestination destination, TypeAdapterConfig config)
        {
            var fn = config.GetMapToTargetFunction <TSource, TDestination>();

            return(fn(source, destination));
        }
Beispiel #7
0
        /// <summary>
        /// Adapt the source object to an existing destination object.
        /// </summary>
        /// <param name="source">Source object to adapt.</param>
        /// <param name="destination">Destination object to populate.</param>
        /// <param name="sourceType">The type of the source object.</param>
        /// <param name="destinationType">The type of the destination object.</param>
        /// <param name="config">Configuration</param>
        /// <returns>Adapted destination type.</returns>
        public static object Adapt(this object source, object destination, Type sourceType, Type destinationType, TypeAdapterConfig config)
        {
            dynamic fn = config.GetMapToTargetFunction(sourceType, destinationType);

            return(fn((dynamic)source, (dynamic)destination));
        }