public T GetValue <T>(bool isDeepClone = true) { object val = Value; var t = typeof(T); if (t == TypeHelper.BoolType || t == TypeHelper.StringType || t == TypeHelper.CharType || t == TypeHelper.DateTimeType) { return((T)Convert.ChangeType(val, t)); } if (t == TypeHelper.NullableBoolType || t == TypeHelper.NullableCharType || t == TypeHelper.NullableDateTimeType) { return(val == null ? default(T) : (T)Convert.ChangeType(val, Nullable.GetUnderlyingType(t))); } return(DeepClonerGenerator.CloneObject <T>((T)val)); }
/// <summary> /// Performs deep (full) copy of object and related graph /// </summary> public static T DeepClone <T>(this T obj) { return(DeepClonerGenerator.CloneObject(obj)); }
public static T DeepClone <T>(this T original) { return(DeepClonerGenerator.CloneObject(original)); }