c# - 如何重用序列化结果?
问题描述
这可能是一个奇怪的情况,但这里有:我有 2 个可序列化类 A 和 B。在 A 的实例被序列化为字节数组后,B 的实例将引用该 A 的实例。当 B 的实例为序列化,我想利用 A 已经序列化的事实来避免将相同的东西序列化两次。这是一些示例代码:
[Serializable]
class A
{
// Holds some stuff
}
[Serializable]
class B
{
A aMember;
public B(A data)
{
aMember = data;
}
// Some other stuff
}
class Wubwub
{
void SerializeSomeThings()
{
var formatter = new BinaryFormatter();
var foo = new A();
byte[] serializedA;
using (var firstStream = new MemoryStream())
{
formatter.Serialize(firstStream, foo);
serializedA = firstStream.ToArray();
}
// Later on...
var bar = new B(foo);
using (var secondStream = new MemoryStream())
{
// How do I take advantage of serializedA?
formatter.Serialize(secondStream, bar);
}
}
}
我是序列化的新手,所以请告诉我这是不可能的还是没有任何意义。谢谢!
解决方案
推荐阅读
- sqlalchemy - SQLAlchemy:合并后避免从数据库重新加载大对象
- javascript - body onload 函数在我的示例(JavaScript)中不起作用
- search - Solr 搜索没有给出单个词项的确切结果
- javascript - 如何从浏览器控制台上可见的对象获取数据,但在我的代码上手动遍历它时返回 null?
- c++ - 十六进制到十进制转换器不起作用(c ++)
- angular - 从 ngxs 商店读取
- python - 使用其他模型的属性作为默认值
- laravel - Laravel livewire 和 vuejs 无限滚动
- flutter - Flutter 中受密码保护的 AlertDialog
- python - 使用超时设置从子进程捕获输出