Учитывая следующую структуру классов, будет ли Bar сериализоваться / десериализоваться должным образом?
public class Foo { int x; string y; }
[Serializable]
public class Bar {
Foo[] AllFoos;
Foo SelectedFoo;
public Bar(Foo[] allFoos, int selectedFooIndex) {
this.AllFoos = allFoos;
this.SelectedFoo = allFoos[selectedFooIndex];
}
}
Мне интересно кое-что:
1) ТРЕБУЕТ ли BinaryFormatter, чтобы класс Bar был украшен атрибутом [Serializable] или реализовал интерфейс ISerializable?
2) Нужно ли украсить класс Foo атрибутом [Serializable]?
3) Если Bar просто украшен атрибутом [Serializable], будет ли поле Bar.SelectedFoo правильно поддерживать свою ссылку в массив? или я получу копию этого Foo?