2009-03-14 12 views

Respuesta

6

Por lo que yo sé, no creo que esto sea posible, los nombres de las clases coinciden casi exactamente con lo que está en el esquema.

Personalmente cambiaría los nombres de las clases después de que XSD haya generado el código, pero para ser honesto, por lo general me limito a lo que XSD genera. Es más fácil para alguien más que lee el código comprender qué clases asignan a qué partes del XML.

Como alternativa, si tiene control sobre el esquema, ¿podría actualizar eso?

6

Básicamente, no. Si se va a escribir las clases de forma manual, podría tener: sin embargo

[XmlType("bar")] 
class Foo {} 

, no se puede hacer esto con las clases generadas xsd. Desafortunadamente, una de las cosas que no se puede hacer con un partial class es cambiarle el nombre. Por supuesto, puede usar xsd para generarlo, cambie el archivo .cs y no lo vuelva a generar, pero eso no es ideal para el mantenimiento.

2

Cualquier esquema con una anidación algo profunda termina con nombres completamente inútiles.

No conozco una forma de evitar el problema, pero mi consejo para al menos reducir el impacto negativo es el siguiente: defina una lista de alias para los tipos con nombre horrible. De esta forma, puede escribir código que no es completamente ilegible sin perder la capacidad de regeneración.

 
using AgentAddress = Example.Namespace.DataContract.RootElementNestedElementAgentAddress; 
... 

Es una lástima esta lista en sí tiene que ser copiar-pegar a todos los archivos de código que lo necesitan, pero creo que esto por lo menos constituye una mejora.

Cuestiones relacionadas