Думайте об этом так:
Допустим, вы десериализуете класс с несколькими сериализованными свойствами, и установщик последнего свойства имеет побочные эффекты, которые могут изменять значения другого свойства. Измененное свойство больше не отражает ваши сериализованные данные. Вы действительно хотите использовать этот сеттер?
С другой стороны, что, если для имущества нет резервного магазина? Возможно, это составное свойство, позволяющее вам получать и устанавливать значения всех остальных одновременно. Возможно, это свойство не должно быть сериализовано (или только это свойство должно быть сериализовано, в зависимости от того, как все работает), но могут быть и другие примеры. Как средство форматирования узнает, где назначить значение для такого свойства?
Так что это? Мне пришлось искать его, и я не смог быстро найти авторитетный источник, но похоже, что XmlSerializer использует геттеры и сеттеры, в то время как BinaryFormatter не использует геттеры или сеттеры.
И это имеет смысл. Моя первая мысль показала, что вы на самом деле не хотите использовать геттер / сеттеры. Мой второй пункт показал, что вы можете иметь , чтобы использовать их. Двоичный форматер может просто взять точное представление объекта в памяти, поэтому он пропускает метод получения / установки. XmlSerializer, у которого нет этой способности, должен использовать другой метод.
Вероятно, вам следует настроить проект для быстрого тестирования, чтобы вы могли увидеть его в действии.