Exemple #1
0
        public void MapTo()
        {
            //RuntimeServicePools.TryAdd<IProfileConfiguration, ProfileConfiguration>();

            var mapTo = RuntimeServicePools.Singleton <IMapToExpression, MapToExpression>();

            //? 为类型“CopyTest”指定代理。
            mapTo.Run <CopyToTest, MapToTest>(source =>
            {
                return(new MapToTest
                {
                    Id = source.Id,
                    Name = source.Name,
                    Date = source.Date
                });
            });

            mapTo.Map <MapToTest>(typeof(CopyToTest), source => null);

            mapTo.Map <MapToTest>(type => true, source => null);

            var value = new CopyToTest
            {
                Id   = 1000,
                Name = "test",
                Date = DateTime.Now
            };

            for (int i = 0; i < 100000; i++)
            {
                var map1 = value.MapTo <CopyTest>();

                value.Name = "test1";

                var map2 = value.MapTo <MapToTest>();

                //var map3 = value.MapTo<IEnumerable<KeyValuePair<string, object>>>();

                //var map4 = value.MapTo<ICollection<KeyValuePair<string, object>>>();

                var map5 = value.MapTo <Dictionary <string, object> >();

                value.Name = "test5";
            }
        }
Exemple #2
0
 /// <summary>
 /// 对象映射
 /// </summary>
 /// <param name="obj">数据源</param>
 /// <param name="def">默认值</param>
 /// <typeparam name="T">目标类型</typeparam>
 /// <returns></returns>
 public static T MapTo <T>(this object obj, T def = default) =>
 RuntimeServicePools.Singleton <IMapToExpression, MapToExpression>()
 .MapTo(obj, def);
Exemple #3
0
 /// <summary>
 /// 对象映射
 /// </summary>
 /// <param name="obj">数据源</param>
 /// <param name="conversionType">目标类型</param>
 /// <returns></returns>
 public static object MapTo(this object obj, Type conversionType) =>
 RuntimeServicePools.Singleton <IMapToExpression, MapToExpression>()
 .MapTo(obj, conversionType);
Exemple #4
0
 /// <summary>
 /// 对象克隆
 /// </summary>
 /// <param name="obj">数据源</param>
 /// <param name="def">默认值</param>
 /// <typeparam name="T">目标类型</typeparam>
 /// <returns></returns>
 public static T CopyTo <T>(this T obj, T def = default) =>
 RuntimeServicePools.Singleton <ICopyToExpression, CopyToExpression>()
 .CopyTo(obj, def);