Prima di investire molto tempo nella ricerca del rasoio e della sua applicabilità, vorrei chiederti dei guru del rasoio se si potesse usare il rasoio per generare codice C#? Qualche problema che puoi pensare subito?Usa il rasoio per generare il codice?
risposta
Certamente potrebbe uso del rasoio per generare codice C#, ma in realtà non è progettata per le lingue non-XML-like. Dovresti avere molti tag > di testo .
Grazie, sono le informazioni che stavo cercando. – epitka
+1 Grazie per le informazioni su "
Andrew - Razor è 100 volte meglio di qualsiasi altro motore di template che abbia mai visto. Complimenti a te! Certamente lo userò ancora piuttosto su altri generatori di goda, anche con i tag
È possibile utilizzare il rasoio proprio come i modelli T4 per generare qualsiasi tipo di testo. Vedi questo post sul blog.
http://weblogs.asp.net/mikaelsoderstrom/archive/2010/08/03/use-razor-for-t4-templates.aspx
Il mio primo tentativo con razor dll versione 2.1.4039.23635 era molto più facile di quanto mi aspettassi
Ecco una piccola demo di lavoro
Il 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);
}
}
}
}
Il modello assomiglia a questo
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 l'elemento che impedisce <text>
rasoio di interpretare l'uscita Debug.WriteLine
Il è
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);
}
}
}
Sarebbe bello se rasoio attuerebbe @"..."@
o @'...'@
come alias per <text>...</text>
. Ho aggiunto questo razorengine.codeplex-Issue come una richiesta per migliorare. Se si prevede di utilizzare il rasoio come CodeGenerator si prega di upvote è a razorengine.codeplex-Issue
Edit: come suggerito @Epitka, possiamo usare @:
al posto di un singolo tag di testo linea:
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. posso ridurre il codice di rasoio per solo poche righe?
- 2. Codice VS, nessun completamento del codice per il codice C# all'interno del rasoio cshtml
- 3. Come generare dropdownlist in asp.net MVC rasoio
- 4. Documentazione di riferimento per il rasoio ASP.NET
- 5. Come generare un file XMI per il codice sorgente java?
- 6. Generatore di codice Eclipse per generare il mapper Classe
- 7. Il miglior design per generare codice da un AST?
- 8. Lexer/parser per generare il codice Scala dalla grammatica BNF
- 9. Usa parentesi graffe per strutturare il codice in PHP
- 10. generare il codice finale dal modello di codice Haskell
- 11. Come si usa il seguente codice R per riprodurre il seguente grafico con il pacchetto ggplot2?
- 12. Quale tecnica usa Facebook per generare il loro feed di notizie nella loro applicazione per iPhone?
- 13. Come posso compilare manualmente il codice Cython che usa C++?
- 14. Come si usa Math.Random per generare ints casuali?
- 15. Usa JSON.NET per generare schema JSON con attributi aggiuntivi
- 16. Il formato auto VisualStudio non formatta correttamente il mio codice rasoio
- 17. Come posso generare il codice sorgente per creare un oggetto che sto eseguendo il debug?
- 18. C'è un modo per usare il codice jquery all'interno del rasoio?
- 19. Come inserire il codice jQuery? Uncaught ReferenceError: $ non è definito nella visualizzazione del codice rasoio
- 20. Modello C++ Metaprogrammazione - È possibile generare il codice generato?
- 21. Come generare un JAR con il codice sorgente in Maven
- 22. generare e analizzare il codice Python da C# applicazione
- 23. MVC Staffe per rasoio all'interno del blocco di codice
- 24. Usa rand() per generare numeri nella tabella di divisione
- 25. Come generare ed eseguire il codice nativo in modo dinamico?
- 26. Usa il controllo ortografico nei commenti del codice
- 27. Come generare un WAR con il codice sorgente in Maven?
- 28. Maven jaxb2: xjc non riuscendo a generare il codice
- 29. possibile scrivere codice in javascript rasoio?
- 30. MVC 3 con le migliori pratiche per il rasoio
commento su "chiuso troppo ampia ": Questa domanda è davvero ampia? La vera domanda qui è "è possibile utilizzare il rasoio per generare codice e se sì come". C'è un esempio funzionante che mostra come generare codice. – k3b