首页 > 解决方案 > 将不可序列化对象序列化或取消设置为可序列化对象的一部分 (C#)

问题描述

假设我有一个MyClass类的对象,其中有一个SerialPort对象。我正在尝试序列化并保存以将我的“MyClass”对象归档,但我不能,因为 SerialPort 类的对象不可序列化。跳到追逐,我有这样的事情:

[Serializable]
public class MyClass
{
    public MyClass()
    {

    }
    public SerialPort mySerialPort;

}

看来 C# 不允许我取消设置或更改 mySerialPort 的类型。在这种情况下,解决方法是什么?

mySerialPort = null; // obviously doesn't work

我需要从 MyClass 类型的对象中访问串行端口,但是当我序列化它时我并不需要它。有没有办法在对象构造期间将它作为参数传递,所以它不是对象的一部分?

标签: c#serializationserial-portbinaryformatter

解决方案


您可以标记该字段[NonSerialized]以将其从序列化中排除。


推荐阅读