frogsoftware 10 月之前
父節點
當前提交
3e1faef38b
共有 2 個文件被更改,包括 23 次插入4 次删除
  1. 11 1
      InABox.Core/BaseObject.cs
  2. 12 3
      InABox.Core/CoreTable/CoreRow.cs

+ 11 - 1
InABox.Core/BaseObject.cs

@@ -62,7 +62,17 @@ namespace InABox.Core
         [SetInterceptor]
         protected void SetValue<T>(string name, Type propertyType, PropertyInfo propertyInfo, FieldInfo fieldInfo, object newValue, T genricNewValue, out T refToBackingField)
         {
-            refToBackingField = genricNewValue;
+            try
+            {
+                refToBackingField = genricNewValue;
+            }
+            catch (System.Exception e)
+            {
+                refToBackingField = default(T);
+                //Console.WriteLine(e);
+                //throw;
+            }
+            
         }
         
         

+ 12 - 3
InABox.Core/CoreTable/CoreRow.cs

@@ -108,11 +108,20 @@ namespace InABox.Core
 
                         var setter = setters[i];
                         if (setter != null)
-                            setter.Invoke(obj,value);
+                            try
+                            {
+                                setter.Invoke(obj,value);
+                            }
+                            catch (Exception e)
+                            {
+                                CoreUtils.SetPropertyValue(obj, column, value);
+                            }
+                           
                         // if (setter != null && value != null && !(value is System.DBNull))
                         //     setter.Invoke(obj, value);
-                        // else
-                        //     CoreUtils.SetPropertyValue(obj, column, value);
+                         else
+                             CoreUtils.SetPropertyValue(obj, column, value);
+                             
                     }
                 }
                 catch (Exception e)