2009-10-23 25 views
14

Piszę oprogramowanie, które produkuje kod C#. Głównie używam StringTemplate i StringBuilder.Czy mogę używać T4 programowo z C#?

Czy istnieje sposób użycia szablonów T4 bezpośrednio z mojego kodu?

+0

Czy próbujesz zautomatyzować T4 z C# –

+0

Dokładnie. Mam aplikację WinForm, w której użytkownik tworzy usługę, a następnie aplikacja musi wygenerować kod C# (c, java ...). –

Odpowiedz

12

Oleg Sych opisuje, jak to zrobić tutaj: Understanding T4: Preprocessed Text Templates. Zauważ, że potrzebujesz Visual Studio 2010 do wygenerowania wstępnie przetworzonego szablonu tekstowego, ale będziesz mógł hostować wstępnie przetworzony szablon tekstowy w dowolnym miejscu - w tym w aplikacji WinForm.

+0

Drugi link jest już martwy. – Amy

+0

Wskazał drugi link do odpowiedniej strony na archive.org. HTH –

5

Prostym sposobem, aby to zrobić:

System.Diagnostics.Process proc = new System.Diagnostics.Process(); 

proc.EnableRaisingEvents = false; 

// Set text transform program (this could change according to the Windows version) 
proc.StartInfo.FileName = "C:\\Program Files (x86)\\Common Files\\microsoft shared\\TextTemplating\\10.0\\TextTransform.exe"; 

// Specify T4 template file 
proc.StartInfo.Arguments = "C:\template.tt"; 

proc.Start(); 
+9

Nie zakładaj, że C: \ istnieje. Zwłaszcza nie zakładaj, że TextTemplating jest zainstalowany. – SLaks

Powiązane problemy