c# - 序列化包含不可序列化成员的类

标签 c# serialization

是否可以序列化包含不可序列化成员的类?

例子: 我有一个类指令,它有两个成员:

public class Instruction
{
    public OpCode Op { get; set; }
    public object Operand { get; set; } 
}

问题是,成员 Op 的类型在第 3 方库中,我无法使其序列化。我尝试了 BinaryFormatter 和 ProtoBuf,但都没有标记 Op 成员就失败了。

任何人都知道序列化我的对象的解决方案吗?

最佳答案

显然,如果一个类的一部分不可序列化,则您不能序列化该部分,但您可以忽略它(并在反序列化时提供一些默认值,可能是 null 值)。

如果你正在使用 ProtoBuf,你可以使用 [ProtoIgnore] 属性来标记 Op 属性,或者 [NonSerialized ] BinaryFormatter 的属性。

关于c# - 序列化包含不可序列化成员的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30143783/

相关文章:

c# - "MouseDown+=new MouseEventHandler(mouseDown)"和 MouseDown+=mouseDown 有什么区别

java - 可靠地识别序列化 Java 对象的类

java - 将多个映射序列到一个文件

c# - 在windows sdk中没有找到引用(Windows 1903)

javascript - 我可以从 Universal JS App(.NET) 调用任何 C# 方法吗?

c# - 创建返回排序 lambda 表达式的通用方法

c# - 使用 UWP API 在 Win32 桌面应用程序中枚举 BLE 设备时出现问题

php - 组注释不起作用

c# - 'Service Reference' 和 'Web Reference' 之间的不同行为

java - 序列化 JFrame 并通过网络发送