예제 #1
0
        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);
            }));
        }
예제 #2
0
 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;
 }