private static RazorProjectEngine GetEngine(PublicCSharpCompiler csharpCompiler, PublicRazorReferenceManager referenceManager, PublicFileProviderRazorProjectFileSystem projectFileSystem, string assemblyName) { var engineConfig = RazorConfiguration.Create(RazorLanguageVersion.Latest, assemblyName, Array.Empty <RazorExtension>()); return(RazorProjectEngine.Create(engineConfig, projectFileSystem, builder => { RazorExtensions.Register(builder); // Roslyn + TagHelpers infrastructure builder.Features.Add(new PublicLazyMetadataReferenceFeature(referenceManager)); builder.Features.Add(new CompilationTagHelperFeature()); // TagHelperDescriptorProviders (actually do tag helper discovery) builder.Features.Add(new DefaultTagHelperDescriptorProvider()); builder.Features.Add(new ViewComponentTagHelperDescriptorProvider()); builder.SetCSharpLanguageVersion(csharpCompiler.ParseOptions.LanguageVersion); })); }
public PublicCSharpCompiler(PublicRazorReferenceManager manager, IHostEnvironment hostingEnvironment) { _referenceManager = manager ?? throw new ArgumentNullException(nameof(manager)); _hostingEnvironment = hostingEnvironment ?? throw new ArgumentNullException(nameof(hostingEnvironment)); }
public PublicLazyMetadataReferenceFeature(PublicRazorReferenceManager referenceManager) { this.referenceManager = referenceManager; }