2012-07-19 20 views
6

Corro sgen contro il mio assieme con una tonnellata di tipi. Voglio escludere 2 tipi dalla serializzazione. Non riesco a trovare un modo per farlo.Come escludere tipi specifici dalla serializzazione?

Vedo che sgen ha uno switch /type per specificare un tipo specifico, ma nulla per escludere un tipo specifico.

Esiste un modo per escludere tipi specifici dalla serializzazione?

+0

Forse non ho capito la tua domanda, ma 'sgen' genera solo l'assembly di serializzazione. Qual è il problema con l'avere altre due classi in là? –

risposta

-3

Non sono sicuro se si sta cercando questo, ma è possibile escludere le proprie classi dalla serializzazione citando [NonSerialized] prima della definizione della classe. Quindi, se si desidera escludere un tipo specifico si dovrà ereditare da essa e creare la propria classe

[NonSerialized] 
public class Point 
{ 
    public int x, y; 
} 
+2

Questo codice non dovrebbe essere compilato, poiché gli unici target di attributo 'NonSerialized' sono campi. – tm1

+1

Errore L'attributo 'Non serializzato' non è valido su questo tipo di dichiarazione. È valido solo per le dichiarazioni di "campo". –

1

A parte mettere i tipi che si desidera escludere in un assembly diverso, non è possibile escludere tipi dalla serializzatore generazione.

0

È possibile provare a modificare l'accesso delle classi che si desidera escludere dalla serializzazione Xml contrassegnando la classe come internal, quindi sgen.exe deve ignorare tale classe.

internal class NotToBeSerialized 
{ 
    ... 
} 
Problemi correlati