2016-08-03 33 views
0

Wir haben eine Geschäftsanforderung zum Generieren von Metadatendateien, meist JSON oder XML, die verschiedenen Schemas entsprechen, und zur Laufzeit durch eine Serveranwendung.Alternativen zu T4 für die Laufzeitgenerierung von Dateien in .NET

T4 schien eine gute Option dafür zu sein. Die Möglichkeit, Parameter zur Laufzeit bereitzustellen und statischen Text mit C# zu kombinieren, war perfekt. Jedoch rät MSDN's documentation davon ab, es in Serveranwendungen zu verwenden, und weist auch darauf hin, dass alle Transformationen seriell ausgeführt werden.

Gibt es Alternativen zu T4-Vorlagen, um dynamisch Metadatendateien auf Basis einer Textvorlage zur Laufzeit zu erstellen?

Antwort

1

Es gibt zwei Seiten zu T4, Kompilierzeit und Laufzeit. Sie basieren auf der gleichen Technologie, aber der Zweck ist etwas anders. Die Kompilierzeit besteht darin, Code zu generieren, der als Teil Ihrer Anwendung kompiliert wird. Runtime-Transformationen ist das, wonach Sie suchen.

Was das Dokument sagt ist, dass sie nicht empfehlen, die Kompilierzeit eins auf Servern zu verwenden, jedoch sollte die Laufzeitumwandlung in Ordnung sein. Es generiert selbst eine Klasse, die die Laufzeitumwandlungen behandelt. Die Anwendung wird eigenständig sein und keine VS-Komponenten zur Durchführung der Transformation benötigen.

Run-Time Text Generation with T4 Text Templates.

+0

Richtig, ich denke, es macht Sinn, dass Kompilierzeit Transformationen auf Servern nicht empfohlen werden, aber auch noch, es scheint von Transformationen abgesehen von einem einzigen Thread, der für uns nicht ideal ist. Ich wollte sehen, ob Razor benutzt werden kann, um das zu tun, was ich beschrieben habe ... –