Это может быть странной ситуацией, но здесь идет речь: у меня есть 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);
}
}
}
Я новичок в сериализации, поэтому, пожалуйста, скажите мне, если это невозможно или не имеет никакого смысла. Спасибо!