public GeneratorResults GenerateCode(string rootRelativePath, Stream inputStream) { StreamReader sr = new StreamReader(inputStream); var className = MainClassNamePrefix + ParserHelpers.SanitizeClassName(rootRelativePath); var engine = new RazorTemplateEngine(_host); return engine.GenerateCode(GenerateStreamFromString(MinifyChunk(sr.ReadToEnd())), className, DefaultNamespace, rootRelativePath); }
private static void GenerateCodeFile(string file, string @namespace, int iterations) { var basePath = Path.GetDirectoryName(file); var fileName = Path.GetFileName(file); var fileNameNoExtension = Path.GetFileNameWithoutExtension(fileName); var codeLang = new CSharpRazorCodeLanguage(); var host = new MvcRazorHost(new DefaultChunkTreeCache(new PhysicalFileProvider(basePath))); var engine = new RazorTemplateEngine(host); Console.WriteLine("Press the ANY key to start."); Console.ReadLine(); Console.WriteLine($"Starting Code Generation: {file}"); var timer = Stopwatch.StartNew(); for (var i = 0; i < iterations; i++) { using (var fileStream = File.OpenText(file)) { var code = engine.GenerateCode( input: fileStream, className: fileNameNoExtension, rootNamespace: Path.GetFileName(@namespace), sourceFileName: fileName); } Console.WriteLine("Completed iteration: " + (i + 1)); } Console.WriteLine($"Completed after {timer.Elapsed}"); }
public GeneratorResults Generate(Type modelType,string template) { //准备临时类名,读取模板文件和Razor代码生成器 string templateType = "YOYO.AspNetCore.ViewEngine.Razor.RazorViewTemplate"; string templateTypeName = modelType != null ? string.Format(templateType + @"<{0}>", modelType.FullName) : templateType; var class_name = "c" + Guid.NewGuid().ToString("N"); var host = new RazorEngineHost(new CSharpRazorCodeLanguage(), () => new HtmlMarkupParser()) { DefaultBaseClass = templateTypeName, DefaultClassName = class_name, DefaultNamespace = "YOYO.AspNetCore.ViewEngine.Razor", GeneratedClassContext = new GeneratedClassContext("Execute", "Write", "WriteLiteral", "WriteTo", "WriteLiteralTo", "RazorViewTemplate.Dynamic", new GeneratedTagHelperContext()) }; host.NamespaceImports.Add("System"); host.NamespaceImports.Add("System.Dynamic"); host.NamespaceImports.Add("System.Linq"); host.NamespaceImports.Add("System.Collections.Generic"); var engine = new RazorTemplateEngine(host); return engine.GenerateCode(new StringReader(template)); ; }
/// <inheritdoc /> public GeneratorResults GenerateCode(string rootRelativePath, Stream inputStream) { var className = ParserHelpers.SanitizeClassName(rootRelativePath); var engine = new RazorTemplateEngine(this); return engine.GenerateCode(inputStream, className, DefaultNamespace, rootRelativePath); }