C# 序列化.NET对象

C# 序列化.NET对象,c#,serialization,C#,Serialization,要保存我的应用程序的所有设置,我在文件中使用序列化,如本教程所述: 所以我创建了一个叫做键盘的类 [Serializable()] class Keyboard : ISerializable { private DeviceInf _infoKbd; private Screen _displayAttached; } 当我启动程序时,应用程序在序列化过程中崩溃,表示屏幕无法序列化。因此,我的问题是:如何序列化一开始不可序列化的.NET?我怀疑您必须使DeviceInfo和

要保存我的应用程序的所有设置,我在文件中使用序列化,如本教程所述:

所以我创建了一个叫做键盘的类

[Serializable()]
class Keyboard : ISerializable
{
    private DeviceInf _infoKbd;
    private Screen _displayAttached;
}

当我启动程序时,应用程序在序列化过程中崩溃,表示屏幕无法序列化。因此,我的问题是:如何序列化一开始不可序列化的.NET?

我怀疑您必须使DeviceInfo和Screen也可序列化。

我怀疑您必须使DeviceInfo和Screen也可序列化。

System.Windows.Forms.Screen对象未标记为可序列化,因此.NET不能这样做你的重担。不过,您可以编写自己的序列化程序。序列化表单的示例可在中找到。如果您不想这样做,也许可以将设置保存在和app.config文件中。

System.Windows.Forms.Screen对象未标记为可Searializable,因此.NET不会帮您完成繁重的工作。不过,您可以编写自己的序列化程序。序列化表单的示例可在中找到。如果您不想这样做,也许可以将您的设置保存在和app.config文件中。

Screen和DeviceInf是否也标记为[Serializable()]?从Screen类继承并使继承的类可序列化?(如果您使用的是Windows.System.Forms屏幕类,即)。若它是您的,只需将其标记为可序列化。若要序列化键盘,所有属性都必须是可序列化的。您的异常指出Screen类不可序列化。这就是为什么我要使Screen对象可序列化!你不能那样做。屏幕未标记为可序列化,并且没有默认的ctor(例如与XmlSerializer一起使用)。所以,我想写你自己的序列化程序是很困难的。。。(就像Beaner给出的链接一样)。无法序列化完整对象,但可以使用另一个对象来存储所需的所有内容(并使其可序列化)。Screen和DeviceInf是否也标记为[serializable()]?从Screen类继承,并使继承的类可序列化?(如果您使用的是Windows.System.Forms屏幕类,即)。若它是您的,只需将其标记为可序列化。若要序列化键盘,所有属性都必须是可序列化的。您的异常指出Screen类不可序列化。这就是为什么我要使Screen对象可序列化!你不能那样做。屏幕未标记为可序列化,并且没有默认的ctor(例如与XmlSerializer一起使用)。所以,我想写你自己的序列化程序是很困难的。。。(就像Beaner给出的链接一样)。您无法序列化完整对象,但可以使用另一个对象来存储所需的所有内容(并使其可序列化)。