Как реализовать GetObjectData в объекте с полем ISerializable, которое само имеет настраиваемую сериализацию?
Как правильно реализовать интерфейс ISerializable для класса, имеющего поле ISerializable?
Предположим, у меня есть следующие два класса, и я должен реализовать пользовательскую сериализацию для них обоих. Как мне реализовать сериализацию / десериализацию 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);
}
}