2010-01-09 21 views

Respuesta

7

Consulte el espacio de nombres System.CodeDom. Básicamente, usa CodeDom para crear un modelo abstracto de la clase. Luego instancia un CSharpCodeProvider o VBCodeProvider y utiliza uno de los métodos CodeDomProvider.GenerateCodeFrom ... para emitirlo como el tipo apropiado de código fuente. Esta es la tecnología subyacente utilizada por Windows Forms Designer, xsd.exe, etc.

Tenga en cuenta, sin embargo, que CodeDom es bastante detallado y difícil de usar. Si sus clases son moderadamente complejas, puede usar un motor de plantillas, como T4 o NVelocity.

8

¿Realmente necesita clases .NET específicas, o puede vivir con un complemento para Visual Studio?

Si tiene Visual Studio, definitivamente eche un vistazo a la plantilla T4, uno de los activos menos conocidos y valiosos en VS.

Hay al menos una herramienta de línea de comandos que se puede llamar desde. Código NET para hacer la transformación, pero estoy bastante seguro de que también podría invocar algún motor de transformación como una clase .NET y hacer que genere C# o VB.NET co de su plantilla T4 mediante programación.

Normalmente, usar T4 es mucho más fácil que CodeDom, tiene sus límites, pero en su mayor parte, es una gran tecnología para hacer las cosas de manera rápida y fácil.

Cuestiones relacionadas