2

ISerializable フィールドを持つクラスに ISerializable インターフェイスを実装する正しい方法は何ですか?

次の 2 つのクラスがあり、両方のカスタム シリアル化を実装する必要があるとします。Foo のシリアル化/逆シリアル化をどのように実装すればよいですか?

public class Foo : ISerializable
{
    private int b;

    private Bar bar;

    protected Foo(SerializationInfo info, StreamingContext context)
    {
        b = info.GetInt32("b") + 1000;
        // How should I instantiate "bar" field here?
    }

    public void GetObjectData(SerializationInfo info, StreamingContext context)
    {
        info.AddValue("b", b - 1000);
        // How should I serialize "bar" field here?
    }
}

public class Bar : ISerializable
{
    private int a;

    public Bar(SerializationInfo info, StreamingContext context)
    {
        a = info.GetInt32("a") + 100;
    }

    public void GetObjectData(SerializationInfo info, StreamingContext context)
    {
        info.AddValue("a", a - 100);
    }
}
4

0 に答える 0