代码改变世界

C# 中如何深度复制某一个类型(备注:可能有 N 个类型需要复制)的对象?

2019-03-28 11:55  音乐让我说  阅读(547)  评论(0)    收藏  举报

如题,针对某一个特定的类型,深度复制,没有那么难,最起码可以手动赋值,但如果要针对 N 多类型深度复制,最简单的方法,是把这个对象序列化成 XML、JSON 或其它可以序列化的载体,然后再将这个载体反序列化,比如:

 

    public class Copy
    {
        public static T DeepCopy<T>(T input)
        {
            var json = JsonHelper.Serialize(input);

            return JsonHelper.Deserialize<T>(json);
        }
    }

 

谢谢浏览!