2012-01-31 10 views
20

Estoy trabajando con una API que usa json. Tengo algunas clases que he creado para modelar la API. Para facilitar la vida, mis modelos usan propiedades públicas, que a su vez utilizan Json.Net al deserializar el json en objetos.¿Hay alguna manera de usar la deserialización de Json.Net con clases inmutables?

Me gustaría hacer mis objetos inmutables, pero me encuentro con un problema porque si hago que mis propiedades sean solo de lectura, rompo la deserialización. ¿Hay alguna forma de que tenga objetos inmutables y utilice la deserialización?

Respuesta

14

Creo que debería poder usar JsonConstructorAttribute. Ver this question para un ejemplo.

+0

Creo que es posible que haya olvidado pegar un enlace :) – GregB

+0

@GregB, lo siento, publicado ahora. –

+1

Si solo hay un constructor, 'JsonConstructorAttribute' no es necesario. –

8

Proporcione un constructor con los parámetros que corresponden a las propiedades. La carcasa de las primeras letras de los parámetros y propiedades no necesita coincidir.

Cuestiones relacionadas