Antes de invertir mucho tiempo investigando Razor y su aplicabilidad, me gustaría preguntarle a Razor gurus si uno puede usar Razor para generar el código C#? ¿Algún problema que puedas pensar de inmediato?¿Usar la afeitadora para generar el código?
Respuesta
Por supuesto que podría uso de afeitar para generar código C#, pero no es realmente diseñado para idiomas que no son XML similar. Tendría que tener muchas etiquetas < de texto >.
Gracias, esa es la información que estaba buscando. – epitka
+1 Gracias por la información sobre '
Andrew - Razor es 100 veces mejor que cualquier otro motor de plantillas que he encontrado. ¡Felicitaciones a usted! Ciertamente, todavía preferiría usarlo sobre otros generadores de gode, incluso con etiquetas
Puede usar la afeitadora como las plantillas T4 para generar cualquier tipo de texto. Vea esta publicación en el blog.
http://weblogs.asp.net/mikaelsoderstrom/archive/2010/08/03/use-razor-for-t4-templates.aspx
Mi primer intento con la versión razor .dll 2.1.4039.23635 era mucho más fácil de lo que esperaba
Aquí es una pequeña demostración de trabajo
El CodeGenerator
using System.Diagnostics;
using RazorEngine;
namespace CodeGen3b
{
class Program
{
static void Main(string[] args)
{
string template = ... see below;
try
{
string generatedCode = Razor.Parse(template,
new { UserNamespace = "MyOwnNamespace" });
Debug.WriteLine(generatedCode);
}
catch (System.Exception ex)
{
Debug.WriteLine(ex.Message);
Debug.WriteLine(ex.StackTrace);
}
}
}
}
La plantilla se ve así
using System;
namespace @Model.UserNamespace
{
class Program
{
static void Main(string[] args)
{
@for(int i = 0; i < 3; i++){
<text>Debug.WriteLine("hello @i " + @Model.UserNamespace);
</text>}
}
}
}
Nota <text>
el elemento que impide la maquinilla de afeitar de la interpretación de la salida Debug.WriteLine
El es
using System;
namespace MyOwnNamespace
{
class Program
{
static void Main(string[] args)
{
Debug.WriteLine("hello 0 " + MyOwnNamespace);
Debug.WriteLine("hello 1 " + MyOwnNamespace);
Debug.WriteLine("hello 2 " + MyOwnNamespace);
}
}
}
Sería bueno si la maquinilla de afeitar implementaría @"..."@
o @'...'@
como alias para <text>...</text>
. Agregué este razorengine.codeplex-Issue como una solicitud para mejorar. Si va a utilizar la maquinilla de afeitar como CodeGenerator favor upvote al razorengine.codeplex-Issue
Editar: como sugiere @Epitka, podemos utilizar @:
en lugar de una sola etiqueta de línea de texto:
using System;
namespace @Model.UserNamespace
{
class Program
{
static void Main(string[] args)
{
@for(int i = 0; i < 3; i++){
@:Debug.WriteLine("hello @i " + @Model.UserNamespace);
}
}
}
}
- 1. ¿Apagar WebFormViewEngine al usar la afeitadora?
- 2. ¿Hay alguna forma de usar el código jquery dentro de la afeitadora?
- 3. Generar diagramas para el código de Haskell
- 4. Mejorar el código para generar una distribución
- 5. Código PHP para generar íconos
- 6. ¿Cómo obtener el origen de la página en la afeitadora?
- 7. ¿Cómo establecer el tipo de contenido en la afeitadora (CSHTML)?
- 8. ¿El mejor diseño para generar código de un AST?
- 9. ¿Qué clases y funciones de C# se pueden usar en la afeitadora?
- 10. Usar JSON.NET para generar el esquema JSON con atributos adicionales
- 11. Plantillas T4: ¿adecuadas para generar código C++?
- 12. Generar, compilar y usar código Java en tiempo de ejecución?
- 13. Uso de una DSL para generar el código de C#
- 14. Ruby/Rails: ¿dónde está el código para generar andamios?
- 15. Generar gráfico de llamadas para el código de C++
- 16. ¿Cómo usar JSON para volver a generar el objeto Javascript?
- 17. Qué algoritmo usar para generar el horario de las escuelas
- 18. Al generar código, ¿qué lenguaje debe generar?
- 19. ¿Cómo generar dinámicamente el código matemático?
- 20. Generar y analizar el código Python desde la aplicación C#
- 21. Django - Use admindocs para auto-generar la documentación para el propio código del
- 22. vista parcial nuevamente la afeitadora usando JSON (ASP MVC 3)
- 23. ¿Hay un atajo en Eclipse para generar código para decoradores?
- 24. Cómo generar un JAR con el código fuente en Maven
- 25. (solo) generar código SQL con SqlAlchemy
- 26. ¿Puede un compilador generar código para descargar partes del segmento de código durante la ejecución?
- 27. ¿Puedo generar un archivo .RSM para usar Delphi Debugger?
- 28. Generar solución para C++
- 29. Generar un buen código hash (GetHashCode) para un BitArray
- 30. Generador de código Eclipse para generar mapper Clase
comentario sobre "cerrado por ser demasiado amplia ": ¿Es esta pregunta realmente amplia? La verdadera pregunta aquí es "¿es posible usar la afeitadora para generar código y si es así cómo"? Hay un ejemplo de trabajo que muestra cómo generar código. – k3b