示例#1
0
文件: Adapter.cs 项目: xcolon/Mapster
        public object Adapt(object source, Type sourceType, Type destinationType)
        {
            var fn     = _config.GetMapFunction(sourceType, destinationType);
            var result = fn.DynamicInvoke(source);

            MapContext.Clear();
            return(result);
        }
示例#2
0
 public MapContextScope()
 {
     this.Context = MapContext.Current !;
     if (this.Context == null)
     {
         _isRootScope = true;
         this.Context = MapContext.Current = new MapContext();
     }
 }
示例#3
0
        public MapContextScope(bool ignorePreviousContext)
        {
            _previousContext = MapContext.Current;

            this.Context = ignorePreviousContext
                ? new MapContext()
                : _previousContext ?? new MapContext();

            MapContext.Current = this.Context;
        }
示例#4
0
        public MapContextScope()
        {
            var context = MapContext.Current;

            if (context == null)
            {
                _isRootScope       = true;
                MapContext.Current = context = new MapContext();
            }
            this.Context = context;
        }
示例#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>
 /// <returns>Adapted destination type.</returns>
 public static TDestination Adapt <TSource, TDestination>(TSource source)
 {
     try
     {
         return(TypeAdapter <TSource, TDestination> .Map(source));
     }
     finally
     {
         MapContext.Clear();
     }
 }
示例#6
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();
            }
        }
示例#7
0
文件: Adapter.cs 项目: xcolon/Mapster
        public object Adapt(object source, object destination, Type sourceType, Type destinationType)
        {
            dynamic fn = _config.GetMapFunction(sourceType, destinationType);

            try
            {
                return(fn((dynamic)source));
            }
            finally
            {
                MapContext.Clear();
            }
        }
示例#8
0
文件: Adapter.cs 项目: xcolon/Mapster
        public TDestination Adapt <TSource, TDestination>(TSource source, TDestination destination)
        {
            var fn = _config.GetMapToTargetFunction <TSource, TDestination>();

            try
            {
                return(fn(source, destination));
            }
            finally
            {
                MapContext.Clear();
            }
        }
示例#9
0
文件: Adapter.cs 项目: xcolon/Mapster
        public TDestination Adapt <TDestination>(object source)
        {
            dynamic fn = _config.GetMapFunction(source.GetType(), typeof(TDestination));

            try
            {
                return(fn((dynamic)source));
            }
            finally
            {
                MapContext.Clear();
            }
        }
示例#10
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();
            }
        }
示例#11
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();
            }
        }
示例#12
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();
            }
        }
示例#13
0
 public static void Clear()
 {
     _context = null;
 }