在我的程序中,我的所有类都使用单例模式,除了主窗口之外。因此,所有单例连接都由一个单例类“Manager”维护。其他类中的GUI访问方法通过此类中的公共方法。
现在,我正在尝试保存我的工作(序列化),我总是收到错误“Form1未序列化”。那是GUI类。因此,我将其标记为序列化,知道这不是一个好主意。现在它说“System.windows.forms not serialized”。为什么是这样?是否无法使用单例访问序列化类?请帮忙。
注意:我是一名Java开发人员,学习“Head First C#”。这是我第一次尝试以自己喜欢的方式解决他们的“实验室”问题。
答案 0 :(得分:1)
没有看到代码,很难知道出了什么问题。主要是可以序列化一个表单(我刚刚使用Test<T>(T obj)
方法from MSDN使用DataContractSerializer)。
说完...... 序列化表单本身以保存表单状态是不明智的。相反,您应该将数据保存在单独的类中(通常称为Model类,请参阅MVC)并将数据序列化。使用数据绑定或MVC模式将表单(视图)连接到数据(模型)。
如果这是WinForms(正如我所假设的那样),可以将MVC与WinForms一起使用
https://stackoverflow.com/questions/2406/looking-for-a-mvc-sample-for-winforms
有关使用WinForms进行数据绑定的信息,请参阅