2012-07-19 13 views
6

Ejecuto sgen contra mi ensamblaje con una tonelada métrica de tipos. Quiero excluir 2 tipos de serialización. No parece ser capaz de encontrar una manera de hacerlo.¿Cómo se excluyen tipos específicos de la serialización?

Veo que sgen tiene un interruptor /type para especificar un tipo específico, pero nada para excluir un tipo específico.

¿Hay alguna manera de excluir tipos específicos de la serialización?

+0

Quizás no entendí su pregunta, pero 'sgen' solo genera el conjunto de serialización. ¿Cuál es el problema de tener otras dos clases allí? –

Respuesta

-3

No estoy seguro si está buscando esto, pero puede excluir sus propias clases de la serialización mencionando [NonSerialized] antes de la definición de la clase. lo tanto, si desea excluir un tipo específico que tendrá que heredar de ella y crear su propia clase

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

Este código no debe compilarse, porque los únicos destinos del atributo 'NonSerialized' son los campos. – tm1

+1

Error El atributo 'NonSerialized' no es válido en este tipo de declaración. Solo es válido en declaraciones de 'campo'. –

1

Además de poner los tipos que desea excluir en un montaje diferente, no se puede excluir tipos del serializador Generacion.

0

Puede intentar cambiar el acceso de las clases que desea excluir de la serialización Xml marcando la clase como internal, luego sgen.exe debe omitir esa clase.

internal class NotToBeSerialized 
{ 
    ... 
} 
Cuestiones relacionadas