本帖最后由 ngyg12 于 2015-01-29 17:38:48 编辑

解决方案 »

  1.   

    你的程序没有引用必要的 Assembly。给你个忠告,不要随便使用二进制序列化。它对Assembly、以及其版本,是非常敏感的,当你的客户端部署更新不完全等等情况下,经常容易垮掉。它对于类型源代码的变化(重新编译)也是敏感的。
      

  2.   

    谢谢回复。我也刚开始学习。
    我现在遇到的问题是这样的: 我写了个控件,要求能实现一些撤销和重做的功能。而撤销和重做的主要体现在对一个类的属性的
    修改。所以我想的是,做个堆栈,然后把这个类在不同的操作时刻推入堆栈,然后在撤销的时候出栈覆盖现有的类就好了。因为在
    C#中的类属于引用类型,所以在入栈之前需要先克隆一个新的类放入。所以我就想用序列化和反序列化了。
    不知道你有什么好的方法来实现撤销和重做啊? 希望指教一下。这个类的值可以被propertygrid 控件进行修改,也可能根据用户的一下操作来修改,比如移动,重新定义尺寸等。
      

  3.   

    如果你仅仅是保存一组值
    new一个新的类然后传入当前值,保存在list<T>里就好了