Ejemplo n.º 1
0
        public TDestination Adapt <TDestination>(object source)
        {
            dynamic fn = _config.GetMapFunction(source.GetType(), typeof(TDestination));

            try
            {
                return(fn((dynamic)source));
            }
            finally
            {
                MapContext.Clear();
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Adapt the source object to the destination type.
        /// </summary>
        /// <typeparam name="TDestination">Destination type.</typeparam>
        /// <param name="source">Source object to adapt.</param>
        /// <param name="config">Configuration</param>
        /// <returns>Adapted destination type.</returns>
        public static TDestination Adapt <TDestination>(this object source, TypeAdapterConfig config)
        {
            if (source == null)
            {
                return(default(TDestination));
            }
            dynamic fn = config.GetMapFunction(source.GetType(), typeof(TDestination));

            return((TDestination)fn((dynamic)source));
        }
Ejemplo n.º 3
0
        public TypeAdapterConfig Clone()
        {
            if (_cloneConfig == null)
            {
                _cloneConfig = new TypeAdapterConfig();
                _cloneConfig.Default.Settings.PreserveReference = true;
            }
            var fn = _cloneConfig.GetMapFunction <TypeAdapterConfig, TypeAdapterConfig>();

            return(fn(this));
        }
Ejemplo n.º 4
0
        public TypeAdapterConfig Clone()
        {
            if (_cloneConfig == null)
            {
                _cloneConfig = new TypeAdapterConfig();
                _cloneConfig.Default.Settings.PreserveReference = true;
                _cloneConfig.ForType <TypeAdapterSettings, TypeAdapterSettings>()
                .MapWith(src => src.Clone(), true);
            }
            var fn = _cloneConfig.GetMapFunction <TypeAdapterConfig, TypeAdapterConfig>();

            return(fn(this));
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Adapte the source object to the destination type.
        /// </summary>
        /// <typeparam name="TSource">Source type.</typeparam>
        /// <typeparam name="TDestination">Destination type.</typeparam>
        /// <param name="source">Source object to adapt.</param>
        /// <param name="config">Configuration</param>
        /// <returns>Adapted destination type.</returns>
        public static TDestination Adapt <TSource, TDestination>(TSource source, TypeAdapterConfig config)
        {
            var fn = config.GetMapFunction <TSource, TDestination>();

            try
            {
                return(fn(source));
            }
            finally
            {
                MapContext.Clear();
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Adapte the source object to the destination type.
        /// </summary>
        /// <typeparam name="TDestination">Destination type.</typeparam>
        /// <param name="source">Source object to adapt.</param>
        /// <param name="config">Configuration</param>
        /// <returns>Adapted destination type.</returns>
        public static TDestination Adapt <TDestination>(object source, TypeAdapterConfig config = null)
        {
            config = config ?? TypeAdapterConfig.GlobalSettings;
            dynamic fn = config.GetMapFunction(source.GetType(), typeof(TDestination));

            try
            {
                return(fn((dynamic)source));
            }
            finally
            {
                MapContext.Clear();
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Adapte the source object to the destination type.
        /// </summary>
        /// <param name="source">Source object to adapt.</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, Type sourceType, Type destinationType, TypeAdapterConfig config = null)
        {
            config = config ?? TypeAdapterConfig.GlobalSettings;
            dynamic fn = config.GetMapFunction(sourceType, destinationType);

            try
            {
                return(fn((dynamic)source));
            }
            finally
            {
                MapContext.Clear();
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Adapt the source object to the destination type.
        /// </summary>
        /// <param name="source">Source object to adapt.</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, Type sourceType, Type destinationType, TypeAdapterConfig config)
        {
            var del = config.GetMapFunction(sourceType, destinationType);

            if (sourceType.GetTypeInfo().IsVisible&& destinationType.GetTypeInfo().IsVisible)
            {
                dynamic fn = del;
                return(fn((dynamic)source));
            }
            else
            {
                //NOTE: if type is non-public, we cannot use dynamic
                //DynamicInvoke is slow, but works with non-public
                return(del.DynamicInvoke(source));
            }
        }
Ejemplo n.º 9
0
        public TDestination Adapt <TDestination>(object source)
        {
            dynamic fn = _config.GetMapFunction(source.GetType(), typeof(TDestination));

            return((TDestination)fn((dynamic)source));
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Adapt the source object to the destination type.
        /// </summary>
        /// <typeparam name="TSource">Source type.</typeparam>
        /// <typeparam name="TDestination">Destination type.</typeparam>
        /// <param name="source">Source object to adapt.</param>
        /// <param name="config">Configuration</param>
        /// <returns>Adapted destination type.</returns>
        public static TDestination Adapt <TSource, TDestination>(this TSource source, TypeAdapterConfig config)
        {
            var fn = config.GetMapFunction <TSource, TDestination>();

            return(fn(source));
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Adapt the source object to the destination type.
        /// </summary>
        /// <param name="source">Source object to adapt.</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, Type sourceType, Type destinationType, TypeAdapterConfig config)
        {
            dynamic fn = config.GetMapFunction(sourceType, destinationType);

            return(fn((dynamic)source));
        }
Ejemplo n.º 12
0
        public TDestination Adapt <TSource, TDestination>(TSource source)
        {
            var fn = _config.GetMapFunction <TSource, TDestination>();

            return(fn(source));
        }