/// <summary> /// Clone any object /// </summary> /// <typeparam name="T"></typeparam> /// <param name="sourceObject">The object to clone</param> /// <param name="onErrorCallback">An error callback to receive cloning errors</param> /// <returns></returns> public static T Clone <T>(this T sourceObject, CloneOptions options, Action <Exception, string, object, object> onErrorCallback) { var cloneEngine = new CloneProvider <T> { OnCloneError = onErrorCallback }; var result = cloneEngine.Clone(sourceObject, options); return(result); }
/// <summary> /// Clone any object /// </summary> /// <typeparam name="T"></typeparam> /// <param name="sourceObject">The object to clone</param> /// <returns></returns> public static T Clone <T>(this T sourceObject, CloneOptions options, params string[] ignorePropertiesOrPaths) { var cloneEngine = new CloneProvider <T>(); return(cloneEngine.Clone(sourceObject, options, CloneProvider <T> .DefaultMaxDepth, ignorePropertiesOrPaths)); }
/// <summary> /// Clone any object /// </summary> /// <typeparam name="T"></typeparam> /// <param name="sourceObject">The object to clone</param> /// <returns></returns> public static T Clone <T>(this T sourceObject, CloneOptions options, params Expression <Func <T, object> >[] ignoreProperties) { var cloneEngine = new CloneProvider <T>(); return(cloneEngine.Clone(sourceObject, options, CloneProvider <T> .DefaultMaxDepth, ignoreProperties)); }
/// <summary> /// Clone any object /// </summary> /// <typeparam name="T"></typeparam> /// <param name="sourceObject">The object to clone</param> /// <returns></returns> public static T Clone <T>(this T sourceObject, CloneOptions options) { var cloneEngine = new CloneProvider <T>(); return(cloneEngine.Clone(sourceObject, options)); }