-1

在我的程序中,我所有的课程都使用单例模式,除了主窗口。因此,所有的单例连接都由一个单例类“Manager”维护。通过此类中的公共方法访问其他类中的 GUI 方法。

现在,我正在尝试保存我的工作(序列化),但总是收到错误“Form1 未序列化”。那是GUI类。所以,我把它标记为序列化,知道这不是一个好主意。现在它说“System.windows.forms 未序列化”。为什么是这样?是否无法序列化具有单例访问的类?请帮忙。

注意:我是一名学习“Head First C#”的 Java 开发人员。这是我第一次尝试以我自己喜欢的方式解决他们的“实验室”问题。

4

1 回答 1

1

不看代码很难知道哪里出了问题。原则上可以序列化一个表单(我只是使用MSDNTest<T>(T obj)中的示例方法这样做了,该方法使用DataContractSerializer)。

话虽如此...序列化表单本身以保存表单状态是不明智的。相反,您应该将数据保存在单独的类中(通常称为 Model 类,请参阅MVC)并序列化数据。使用数据绑定或 MVC 模式将表单(视图)连接到数据(模型)。

如果这是 WinForms(我认为),可以将 MVC 与 WinForms 一起使用

https://stackoverflow.com/questions/2406/looking-for-a-mvc-sample-for-winforms

有关与 WinForms 进行数据绑定的信息,请参阅

http://msdn.microsoft.com/en-us/library/ef2xyb33.aspx

于 2012-06-27T17:05:10.633 回答