Допустим, у меня есть классA, который содержит класс B, и оба являются [Serializable].Как изменить порядок десериализации с использованием BinaryFormatter в C#?
Я предположил, что в классе десериализации B сначала будет десериализован.
Это, однако, не так, как я мог подтвердить, просто зарегистрировавшись при каждом методе [OnDeserialized].
Теперь у меня есть следующий вопрос:
После десериализации CLASSA является полным, то предполагается установить себя вверх, используя значения из ClassB. К сожалению, классB еще не был десериализован в данный момент, поэтому classA настроен неправильно.
Моя проблема будет решена, если я могу заставить BinaryFormatter десериализовать класс B перед классом A или разрешить диаграмму объектов снизу вверх, а не сверху вниз.
Еще одно очевидное решение - сделать классB огнем событие, когда оно десериализовано, а затем установить классA, но я хочу держаться подальше от этого неэстетичного обходного пути.
Так что я был бы признателен, если бы кто-нибудь знал о лучшем решении.
Какая платформа вы используете? – Lazarus
В соответствии с названием вопроса, C# -> retagged – pyrocumulus