2012-01-31 6 views
20

Sto lavorando con un'API che utilizza JSON. Ho alcune classi che ho creato per modellare l'API. Per semplificare la vita, i miei modelli usano proprietà pubbliche, che a loro volta vengono usate da Json.Net quando deserializzano il json in oggetti.C'è un modo per usare la deserializzazione di Json.Net con classi immutabili?

Mi piacerebbe rendere i miei oggetti immutabili, ma mi sto imbattendo in un problema perché se faccio le mie proprietà di sola lettura, interrompo la deserializzazione. C'è un modo per me di avere oggetti immutabili e usare la deserializzazione?

risposta

14

Penso che dovresti essere in grado di utilizzare JsonConstructorAttribute. Vedere this question per un esempio.

+0

Penso che potresti aver dimenticato di incollare un collegamento :) – GregB

+0

@GregB, mi dispiace, pubblicato ora. –

+1

Se esiste un solo costruttore, 'JsonConstructorAttribute' non è necessario. –

8

Fornire un costruttore con parametri che corrispondono alle proprietà. L'involucro delle prime lettere dei parametri e delle proprietà non deve necessariamente corrispondere.

Problemi correlati