public RazorTagHelperParsingBenchmark()
        {
            var current = new DirectoryInfo(AppContext.BaseDirectory);

            while (current != null && !File.Exists(Path.Combine(current.FullName, "taghelpers.json")))
            {
                current = current.Parent;
            }

            var root = current;

            var tagHelpers       = ReadTagHelpers(Path.Combine(root.FullName, "taghelpers.json"));
            var tagHelperFeature = new StaticTagHelperFeature(tagHelpers);

            var blazorServerTagHelpersFilePath = Path.Combine(root.FullName, "BlazorServerTagHelpers.razor");

            var fileSystem = RazorProjectFileSystem.Create(root.FullName);

            ProjectEngine = RazorProjectEngine.Create(RazorConfiguration.Default, fileSystem,
                                                      b =>
            {
                RazorExtensions.Register(b);
                b.Features.Add(tagHelperFeature);
            });
            BlazorServerTagHelpersDemoFile = fileSystem.GetItem(Path.Combine(blazorServerTagHelpersFilePath), FileKinds.Component);

            ComponentDirectiveVisitor = new ComponentDirectiveVisitor(blazorServerTagHelpersFilePath, tagHelpers, currentNamespace: null);
            var codeDocument = ProjectEngine.ProcessDesignTime(BlazorServerTagHelpersDemoFile);

            SyntaxTree = codeDocument.GetSyntaxTree();
        }
        public void CodeGeneration_DesignTime_LargeStaticFile()
        {
            var codeDocument = ProjectEngine.ProcessDesignTime(MSN);
            var generated    = codeDocument.GetCSharpDocument();

            if (generated.Diagnostics.Count != 0)
            {
                throw new Exception("Error!" + Environment.NewLine + string.Join(Environment.NewLine, generated.Diagnostics));
            }
        }
Beispiel #3
0
 public void TagHelper_ProcessDesignTime()
 {
     _ = ProjectEngine.ProcessDesignTime(BlazorServerTagHelpersDemoFile);
 }