예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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));
        }
예제 #3
0
        /// <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));
        }
예제 #4
0
        /// <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));
        }