首页 > 解决方案 > 如何重用序列化结果?

问题描述

这可能是一个奇怪的情况,但这里有:我有 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);
        }
    }
}

我是序列化的新手,所以请告诉我这是不可能的还是没有任何意义。谢谢!

标签: c#serialization

解决方案


推荐阅读