问题描述
我在一个 .NET Framework 项目中,我们目前正在使用 BinaryFormatter。我们想过渡到 .NET 5,为此我们需要远离 BinaryFormatter(因为它已经过时并且有安全问题)但我们想坚持二进制序列化(小文件大小,快速,不可读,等)。
没有一个预装的二进制序列化库(MessagePack、protoBuf 等)能够满足我们的需求,所以我一直在自己编写一个二进制序列化类。它做了很多 BinaryFormatter 不能做的事情(出于安全原因,不会在二进制文件中对程序集限定的类型名称进行编码,允许在没有反序列化绑定器的情况下重命名类和命名空间等),但是有一个问题。
自定义类型、基本类型和结构的序列化很容易。序列化通过使用我自己的自定义属性和可序列化类的接口来实现。
但是对于像 List、Dictionary 等框架类......我无法将属性或接口附加到 .NET 类。有没有办法可以编写通用代码来序列化这些类型,包括泛型?
例如,如果我有:
Dictionary<int,MySerializableClass> myDictionary;
我希望能够只写
Save(myDictionary);
无需为所有类型或泛型类型组合(Dictionary
有什么想法吗?是我在每种类型的基础上或使用扩展方法实现这些的唯一选择,还是我可以采取其他一些方法?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)