Предложенное решение использования несериализованного вспомогательного поля, похоже, не работает должным образом с .NET 4.0 (по крайней мере, в случае сериализации Xml). Поле действительно не сериализуется, но публичное свойство, которое его использует, сериализует и, таким образом, игнорирует цель. Использование обходного пути XmlIgnore помогает в случае сериализации Xml. Отказ от ответственности - я не проверял поведение двоичной сериализации.