2009-09-16 10 views
8

Tengo una DLL que contiene algunas clases generadas por XSD. Lamentablemente, XSD.exe hace que esas clases sean públicas, lo que da como resultado "Comentario XML faltante para el tipo visible públicamente o miembro XYZ" advertencias. Además, prefiero no exponer esas clases de mi DLL. ¿Hay alguna manera, salvo editar manualmente los archivos .cs generados, de hacer esas clases interna?¿Hay alguna manera de hacer que xsd.exe genere clases con ámbito "interno"?

Respuesta

5

Esta es una respuesta muy corta que podría ampliarse a un libro.

No, xsd.exe no puede hacer lo que quiera.

Sin embargo, puede utilizar las técnicas descritas en this article para acceder a la clase XmlCodeExporter que es parte del marco que genera el código de esquemas XML. Una vez hecho esto, tiene una copia del CodeDOM para el código generado en la memoria. puede iterar a través de todas las clases en el espacio de nombres y establecerlos en interno.

Puede ser que el esfuerzo requerido para eliminar esta advertencia sea más de lo que desea.

Otra manera de eliminar la advertencia es para generar el código de un conjunto para el cual los documentos XML están apagados (después de todo, ¿quién necesita documentos de código generado?)

+0

Sí nos fijamos en eso también. Terminamos escribiendo un script awk que invocamos como parte de nuestro proceso de compilación para aumentar el código generado con lo que necesitamos. – womp

+1

Gracias. Voy a presentar esto en "más problemas de los que vale la pena", creo. –

Cuestiones relacionadas