Ver Fonte

修复bug

懒得勤快 há 8 anos atrás
pai
commit
9241067864

+ 6 - 0
Masuit.Tools.Core/ExpressionGenericMapper.cs

@@ -43,8 +43,14 @@ namespace Masuit.Tools.Core
                 func = lambda.Compile();
             }
 
+            if (source == null)
+            {
+                return default(TDestination);
+            }
+
             return ((Func<TSource, TDestination>)func)(source); //拼装是一次性的
         }
+
         /// <summary>
         /// 集合映射
         /// </summary>

+ 4 - 0
Masuit.Tools/ExpressionGenericMapper.cs

@@ -43,6 +43,10 @@ namespace Masuit.Tools
                 func = lambda.Compile();
             }
 
+            if (source == null)
+            {
+                return default(TDestination);
+            }
             return ((Func<TSource, TDestination>)func)(source); //拼装是一次性的
         }
 

+ 8 - 6
Test/Program.cs

@@ -1,6 +1,5 @@
 using System;
 using System.Collections.Generic;
-using System.Linq;
 using Masuit.Tools;
 
 namespace Test
@@ -47,8 +46,11 @@ namespace Test
             //Console.WriteLine(match);
             //PhysicsAddress address = "4.2.2.1".GetPhysicsAddressInfo();
 
-            List<MyClass> mc = new List<MyClass> { new MyClass() { Name = "aaa", Age = 10, MyClass3 = new MyClass3(), MyClass2s = new List<MyClass2>() { new MyClass2() { Age = 22, Name = "dddd" } } }, new MyClass() { Name = "aaa", Age = 10, MyClass3 = new MyClass3(), MyClass2s = new List<MyClass2>() { new MyClass2() { Age = 22, Name = "dddd" } } }, new MyClass() { Name = "aaa", Age = 10, MyClass3 = new MyClass3(), MyClass2s = new List<MyClass2>() { new MyClass2() { Age = 22, Name = "dddd" } } }, new MyClass() { Name = "aaa", Age = 10, MyClass3 = new MyClass3(), MyClass2s = new List<MyClass2>() { new MyClass2() { Age = 22, Name = "dddd" } } } };
-            List<MyClass2> list = mc.Map<MyClass, MyClass2>().ToList();
+            //List<MyClass> mc = new List<MyClass> {new MyClass() {Name = "aaa", Age = 10, MyClass3 = new MyClass3(), MyClass2s = new List<MyClass2>() {new MyClass2() {Age = 22, Name = "dddd"}}}, new MyClass() {Name = "aaa", Age = 10, MyClass3 = new MyClass3()}, new MyClass() {Name = "aaa", Age = 10, MyClass3 = new MyClass3(), MyClass2s = new List<MyClass2>() {new MyClass2() {Age = 22, Name = "dddd"}}}, new MyClass() {Name = "aaa", Age = 10, MyClass3 = new MyClass3(), MyClass2s = new List<MyClass2>() {new MyClass2() {Age = 22, Name = "dddd"}}}};
+            //List<MyClass2> list = mc.Map<MyClass, MyClass2>().ToList();
+
+            MyClass mc = null;
+            MyClass2 mc2 = mc.Map<MyClass, MyClass2>();
 
             Console.ReadKey();
         }
@@ -66,12 +68,12 @@ namespace Test
     {
         public string Name { get; set; }
         public int Age { get; set; }
-
+        public MyClass3 MyClass3 { get; set; }
+        public List<MyClass2> MyClass2s { get; set; }
     }
 
     public class MyClass3
     {
         public string MyProperty { get; set; }
-
     }
-}
+}