c# - 将不可序列化对象序列化或取消设置为可序列化对象的一部分 (C#)
问题描述
假设我有一个MyClass类的对象,其中有一个SerialPort对象。我正在尝试序列化并保存以将我的“MyClass”对象归档,但我不能,因为 SerialPort 类的对象不可序列化。跳到追逐,我有这样的事情:
[Serializable]
public class MyClass
{
public MyClass()
{
}
public SerialPort mySerialPort;
}
看来 C# 不允许我取消设置或更改 mySerialPort 的类型。在这种情况下,解决方法是什么?
mySerialPort = null; // obviously doesn't work
我需要从 MyClass 类型的对象中访问串行端口,但是当我序列化它时我并不需要它。有没有办法在对象构造期间将它作为参数传递,所以它不是对象的一部分?
解决方案
您可以标记该字段[NonSerialized]
以将其从序列化中排除。
推荐阅读
- javascript - 在 Popup 加载时从 Magnific Popup 的调用按钮访问属性
- c++ - Boost.Python 不是 .lib
- azure - 警告: foo 的数据已达到每日 0.0323 GB 的上限,并且您的应用遥测数据的收集将停止,直到 UTC 时间 2018 年 6 月 23 日上午 9:00
- java - 如何从源代码中获取使用 Gradle 构建的工件版本
- python-3.x - 如何保存和恢复 tf.estimator 模型
- android - SetScrollY 在片段中不起作用
- java - 在访问相机之前我需要按两次按钮
- python - 在整个 DataFrame 上应用函数的 Pandas 方法
- java - 如何在 JAVA 中解析 XML 对象
- python - 安装 python-pip 时出错