Tengo varias clases que son inmutables una vez que se establecen sus valores iniciales. Eric Lippert llama a esto write-once immutability.Inmutabilidad y serialización XML
Implementar la inmutabilidad de escritura única en C# generalmente significa establecer los valores iniciales a través del constructor. Estos valores inicializan campos de solo lectura.
Pero si necesita serializar una clase como esta en XML, utilizando el XmlSerializer o el DataContractSerializer, debe tener un constructor sin parámetros.
¿Alguien tiene sugerencias sobre cómo solucionar este problema? ¿Hay otras formas de inmutabilidad que funcionan mejor con la serialización?
EDITAR: Como señaló @Todd, el DataContractSerializer no requiere un constructor sin parámetros. De acuerdo con el DataContractSerializer documentation on MSDN, DataContractSerializer "no llama al constructor del objeto de destino".
Creo que estás confundiendo las cosas ... lo que describes es la inmutabilidad de las paletas. Se parece más a la inmutabilidad de escritura única para mí. –
editar: ... es ** no ** paletas ... –
Tiene toda la razón, @Martinho. He corregido mi pregunta para leer "inmutabilidad de escritura única". – dthrasher