有没有办法深度复制不可序列化的对象?

Is there a way to deep copy non serializable object?

我必须将 Arraylist 复制到新的 Arraylist。在旧的 Arraylist 中,有多个元素在 runtime.One 处发生变化,其中是 Arraylist 中的模块设置参数。我想深度复制 arraylist 的值,以便我可以将它用于撤消操作。我尝试使用 Binaryformater 和 Datacontract。对于不可序列化的对象,两者都不能完成。有人可以帮忙吗?

在没有更多信息的情况下,很难准确说出问题所在,但 ArrayList 本身是可序列化的。但是,如果您使用的是自定义对象,则需要将其标记为可序列化才能使序列化工作。参见:Serialize ArrayList of Objects

使用内存流和二进制格式化程序 像

`public T Clone<T> (T obj)
.   {
.       using(var ms = new MemoryStream())
.       {
.          var formatter = new BinaryFormatter();
        formatter.Serialize(stream, obj);
        stream.Position =0;
        return (T)formatter.Deserialize(stream);
     }
.    }’

希望对你有帮助