序列化或取消设置不可序列化的对象作为可序列化对象(C#)的一部分

时间:2018-12-06 06:15:55

标签: c# serialization serial-port binaryformatter

假设我有一个对象 MyClass ,其中有一个对象 SerialPort 。 我正在尝试序列化并将“ MyClass”的对象保存到文件中,但我不能这样做,因为SerialPort类的对象不可序列化。跳到追逐上,我有这样的东西:

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

    }
    public SerialPort mySerialPort;

}

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

mySerialPort = null; // obviously doesn't work

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

1 个答案:

答案 0 :(得分:1)

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