Как я могу использовать результат сериализации? - PullRequest
1 голос
/ 27 февраля 2020

Это может быть странной ситуацией, но здесь идет речь: у меня есть 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);
        }
    }
}

Я новичок в сериализации, поэтому, пожалуйста, скажите мне, если это невозможно или не имеет никакого смысла. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...