zoukankan      html  css  js  c++  java
  • Object_Clone

            private object CloneObject(object o)
            {
                Type t = o.GetType();
                PropertyInfo[] properties = t.GetProperties();

                Object p = t.InvokeMember("", System.Reflection.BindingFlags.CreateInstance, null, o, null);

                foreach (PropertyInfo pi in properties)
                {
                    if (pi.CanWrite)
                    {
                        pi.SetValue(p, pi.GetValue(o, null), null);
                    }
                }

                return p;
            }

    还有一种方式,可以利用运行时序列化来deep clone.(前提是该object一定是Serializable的)

    static object DeepClone(object original)
            {
                using (MemoryStream stream = new MemoryStream())
                {
                    BinaryFormatter formatter = new BinaryFormatter();
                    formatter.Context=new StreamingContext(StreamingContextStates.Clone);
                    // Serialize the original object to memory
                    formatter.Serialize(stream, original);

                    stream.Position = 0;
                    // Deserialize memory stream to a new copy object
                    return formatter.Deserialize(stream);
                }
            }

  • 相关阅读:
    DataFrame转矩阵Np-Array
    十月15
    十月14
    十月14
    十月12
    十月10
    2016-02-22 有无网络 2
    2016-02-22 有无网络的提示 1 h m
    2016-02-20 web view
    20160220 下拉刷新 上拉加载
  • 原文地址:https://www.cnblogs.com/leon032/p/2144759.html
Copyright © 2011-2022 走看看