2010-12-09 24 views
5

Tengo un montón de excepciones personalizadas en el código heredado de mi solución. Y quiero para probar todos¿Cuáles son los requisitos mínimos que debe tener, para decir que una excepción personalizada es serializable?

los excepciones personalizadas introdujo en mis proyectos para ver si son Serializable (XML)

Entonces, ¿qué deben mis pruebas comprobar que pasar cuando una excepción personalizada es serializable?

¿Cuáles son los requisitos mínimos para decir que una excepción personalizada es serializable?

+0

Haciéndolos serializable no es ningún problema, siempre y cuando el nombre del tipo se serializada. La deserialización sería la parte difícil, las excepciones invariablemente obtienen los valores de sus propiedades de su constructor. Por otra parte, deserializar una excepción de un archivo XML no tiene mucho sentido. –

Respuesta

2

Puede comprobar si todas las clases de excepción implementan la interfaz IXmlSerializable:

Assert.IsTrue(yourExceptionInstance is IXmlSerializable); 
+0

Creo que el OP se refiere a la Serialización XML y en ese caso el atributo Serializable no tiene ningún impacto. –

+0

@ João, gracias, reparado :) –

1

La clase base Exception expone una propiedad pública Data que implementa IDictionary que no está soportada por el mecanismo de serialización XML predeterminado .NET.

Así que creo que para XML serializar una excepción, se verá obligado a implementar IXmlSerializable para proporcionar una lógica personalizada de serialización XML.

En base a eso, puede verificar que sus clases implementen esa interfaz específica, como lo demostró Frédéric en su respuesta.

1

Sugeriría usar el método xmlSerializer.CanDeserialize (..).

MSDN

0
typeof(MyException).IsSerializeable 
Cuestiones relacionadas