У меня есть несколько классов, которые неизменяемы после установки их начальных значений. Эрик Липперт называет эту постоянную однократную запись.
Реализация однократной неизменяемости в С# обычно означает установку начальных значений через конструктор. Эти значения инициализируют поля только для чтения.
Но если вам нужно сериализовать такой класс в XML, используя либо XmlSerializer, либо DataContractSerializer, вы должны иметь конструктор без параметров.
Есть ли у кого-нибудь предложения по решению этой проблемы? Существуют ли другие формы неизменяемости, которые лучше работают с сериализацией?
EDIT: Как отметил @Todd, DataContractSerializer не требует конструктора без параметров. Согласно документации DataContractSerializer на MSDN, DataContractSerializer "не вызывает конструктор целевого объекта."