コード例 #1
0
 public CustomCompilationService(ApplicationPartManager partManager,
                                 IOptions <RazorViewEngineOptions> optionsAccessor,
                                 IRazorViewEngineFileProviderAccessor fileProviderAccessor,
                                 ILoggerFactory loggerFactory)
     : base(partManager, optionsAccessor, fileProviderAccessor, loggerFactory)
 {
 }
コード例 #2
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="engine"></param>
 /// <param name="cSharpCompiler"></param>
 /// <param name="applicationPartManager"></param>
 /// <param name="tempDataDictionaryFactory"></param>
 /// <param name="razorViewEngineFileProviderAccessor"></param>
 /// <param name="razorPageActivator"></param>
 /// <param name="htmlEncoder"></param>
 /// <param name="razorPageFactoryProvider"></param>
 /// <param name="httpContextAccessor"></param>
 /// <param name="projectCacheProvider"></param>
 /// <param name="loggerFactory"></param>
 /// <param name="razorEngineOptions"></param>
 /// <param name="mvcViewOptions"></param>
 /// <param name="diagnosticSource"></param>
 public DynamicRazorEngine(RazorEngine engine,
                           CSharpCompiler cSharpCompiler,
                           ApplicationPartManager applicationPartManager,
                           ITempDataDictionaryFactory tempDataDictionaryFactory,
                           IRazorViewEngineFileProviderAccessor razorViewEngineFileProviderAccessor,
                           IRazorPageActivator razorPageActivator,
                           HtmlEncoder htmlEncoder,
                           IRazorPageFactoryProvider razorPageFactoryProvider,
                           IHttpContextAccessor httpContextAccessor,
                           IDynamicRazorProjectCacheProvider projectCacheProvider,
                           ILoggerFactory loggerFactory,
                           IOptions <RazorViewEngineOptions> razorEngineOptions,
                           IOptions <MvcViewOptions> mvcViewOptions,
                           DiagnosticSource diagnosticSource,
                           IServiceProvider serviceProvider)
 {
     _engine = engine;
     _tempDataDictionaryFactory           = tempDataDictionaryFactory;
     _razorViewEngineFileProviderAccessor = razorViewEngineFileProviderAccessor;
     _cSharpCompiler           = cSharpCompiler;
     _razorEngineOptions       = razorEngineOptions;
     _applicationPartManager   = applicationPartManager;
     _loggerFactory            = loggerFactory;
     _razorPageActivator       = razorPageActivator;
     _htmlEncoder              = htmlEncoder;
     _httpContextAccessor      = httpContextAccessor;
     _projectCacheProvider     = projectCacheProvider;
     _diagnosticSource         = diagnosticSource;
     _mvcViewOptions           = mvcViewOptions;
     _razorPageFactoryProvider = razorPageFactoryProvider;
     _serviceProvider          = serviceProvider;
 }
コード例 #3
0
 public CustomCompilationService(ApplicationPartManager partManager, 
     IOptions<RazorViewEngineOptions> optionsAccessor, 
     IRazorViewEngineFileProviderAccessor fileProviderAccessor, 
     ILoggerFactory loggerFactory) 
     : base(partManager, optionsAccessor, fileProviderAccessor, loggerFactory)
 {
 }
コード例 #4
0
        public PageActionDescriptorChangeProvider(
            RazorTemplateEngine templateEngine,
            IRazorViewEngineFileProviderAccessor fileProviderAccessor,
            IOptions <RazorPagesOptions> razorPagesOptions)
        {
            if (templateEngine == null)
            {
                throw new ArgumentNullException(nameof(templateEngine));
            }

            if (fileProviderAccessor == null)
            {
                throw new ArgumentNullException(nameof(fileProviderAccessor));
            }

            if (razorPagesOptions == null)
            {
                throw new ArgumentNullException(nameof(razorPagesOptions));
            }

            _fileProvider = fileProviderAccessor.FileProvider;

            var rootDirectory = razorPagesOptions.Value.RootDirectory;

            Debug.Assert(!string.IsNullOrEmpty(rootDirectory));
            rootDirectory = rootDirectory.TrimEnd('/');

            var importFileAtPagesRoot = rootDirectory + "/" + templateEngine.Options.ImportsFileName;

            _additionalFilesToTrack = templateEngine.GetImportItems(importFileAtPagesRoot)
                                      .Select(item => item.FilePath)
                                      .ToArray();

            _searchPattern = rootDirectory + "/**/*.cshtml";
        }
コード例 #5
0
        public SharedCompilerCacheProvider(
            ApplicationPartManager applicationPartManager,
            IRazorViewEngineFileProviderAccessor fileProviderAccessor,
            IEnumerable <IApplicationFeatureProvider <ViewsFeature> > viewsFeatureProviders,
            IHostingEnvironment env)
        {
            lock (_synLock)
            {
                if (_cache == null)
                {
                    var feature = new ViewsFeature();

                    var featureProviders = applicationPartManager.FeatureProviders
                                           .OfType <IApplicationFeatureProvider <ViewsFeature> >()
                                           .ToList();

                    featureProviders.AddRange(viewsFeatureProviders);

                    var assemblyParts =
                        new AssemblyPart[]
                    {
                        new AssemblyPart(Assembly.Load(new AssemblyName(env.ApplicationName)))
                    };

                    foreach (var provider in featureProviders)
                    {
                        provider.PopulateFeature(assemblyParts, feature);
                    }

                    _cache = new CompilerCache(fileProviderAccessor.FileProvider, feature.Views);
                }
            }
        }
コード例 #6
0
 public TestRazorCompilationService(
     ICompilationService compilationService,
     IMvcRazorHost razorHost,
     IRazorViewEngineFileProviderAccessor fileProviderAccessor,
     ILoggerFactory loggerFactory)
     : base(compilationService, razorHost, fileProviderAccessor, loggerFactory)
 {
 }
コード例 #7
0
 public ModularPageActionDescriptorChangeProvider(
     IRazorViewEngineFileProviderAccessor fileProviderAccessor,
     IOptions <RazorPagesOptions> razorPagesOptions)
 {
     _fileProvider  = fileProviderAccessor.FileProvider;
     _searchPattern = razorPagesOptions.Value.RootDirectory.TrimEnd('/')
                      + "/**/Pages/**/*" + RazorViewEngine.ViewExtension;
 }
コード例 #8
0
 public SourcePointRazorProject(
     IRazorViewEngineFileProviderAccessor accessor
     , IRazorProjectConfiguration razorProjectConfiguration
     ) : base(accessor)
 {
     _ProjectConfiguration = razorProjectConfiguration;
     Init();
 }
コード例 #9
0
 public TestRazorCompilationService(
     ICompilationService compilationService,
     IMvcRazorHost razorHost,
     IRazorViewEngineFileProviderAccessor fileProviderAccessor,
     ILoggerFactory loggerFactory)
     : base(compilationService, razorHost, fileProviderAccessor, loggerFactory)
 {
 }
コード例 #10
0
 public RazorCompilationServiceSpy(ICompilationService compilationService,
                                   IMvcRazorHost razorHost,
                                   IRazorViewEngineFileProviderAccessor fileProviderAccessor,
                                   ILoggerFactory logger)
 {
     _inner = new RazorCompilationService(compilationService, razorHost, fileProviderAccessor, logger);
     _log   = new List <CompileEntry>();
 }
コード例 #11
0
 public SourcePointRazorProject(
     IRazorViewEngineFileProviderAccessor accessor
     , IHostingEnvironment hostingEnvironment
     , IRazorProjectConfiguration razorProjectConfiguration
     ) : base(accessor, hostingEnvironment)
 {
     _ProjectConfiguration = razorProjectConfiguration;
     Init();
 }
コード例 #12
0
        /// <summary>
        /// Initializes a new instance of <see cref="DefaultCompilerCacheProvider"/>.
        /// </summary>
        /// <param name="applicationPartManager">The <see cref="ApplicationPartManager" /></param>
        /// <param name="fileProviderAccessor">The <see cref="IRazorViewEngineFileProviderAccessor"/>.</param>
        public DefaultCompilerCacheProvider(
            ApplicationPartManager applicationPartManager,
            IRazorViewEngineFileProviderAccessor fileProviderAccessor)
        {
            var feature = new ViewsFeature();

            applicationPartManager.PopulateFeature(feature);
            Cache = new CompilerCache(fileProviderAccessor.FileProvider, feature.Views);
        }
コード例 #13
0
        public FileProviderRazorProject(IRazorViewEngineFileProviderAccessor accessor)
        {
            if (accessor == null)
            {
                throw new ArgumentNullException(nameof(accessor));
            }

            _provider = accessor.FileProvider;
        }
コード例 #14
0
 public WyamRazorViewCompilerProvider(ApplicationPartManager applicationPartManager, RazorProjectEngine razorProjectEngine, IRazorViewEngineFileProviderAccessor fileProviderAccessor, CSharpCompiler csharpCompiler, IOptions <RazorViewEngineOptions> viewEngineOptionsAccessor, ILoggerFactory loggerFactory)
 {
     _applicationPartManager = applicationPartManager;
     _razorProjectEngine     = razorProjectEngine;
     _fileProviderAccessor   = fileProviderAccessor;
     _csharpCompiler         = csharpCompiler;
     _viewEngineOptions      = viewEngineOptionsAccessor.Value;
     _logger         = loggerFactory.CreateLogger <RazorViewCompiler>();
     _createCompiler = new Func <IViewCompiler>(CreateCompiler);
 }
コード例 #15
0
 /// <summary>
 /// Initializes a new instance of <see cref="DefaultCompilerCacheProvider"/>.
 /// </summary>
 /// <param name="loadContextAccessor">The <see cref="IAssemblyLoadContextAccessor"/>.</param>
 /// <param name="fileProviderAccessor">The <see cref="IRazorViewEngineFileProviderAccessor"/>.</param>
 /// <param name="assemblies"><see cref="Assembly"/> instances to scan for precompiled views.</param>
 public PrecompiledViewsCompilerCacheProvider(
     IAssemblyLoadContextAccessor loadContextAccessor,
     IRazorViewEngineFileProviderAccessor fileProviderAccessor,
     IEnumerable <Assembly> assemblies)
 {
     _loadContextAccessor = loadContextAccessor;
     _fileProvider        = fileProviderAccessor.FileProvider;
     _createCache         = CreateCache;
     _assemblies          = assemblies.ToArray();
 }
コード例 #16
0
 /// <summary>
 /// Initializes a new instance of <see cref="DefaultCompilerCacheProvider"/>.
 /// </summary>
 /// <param name="loadContextAccessor">The <see cref="IAssemblyLoadContextAccessor"/>.</param>
 /// <param name="fileProviderAccessor">The <see cref="IRazorViewEngineFileProviderAccessor"/>.</param>
 /// <param name="assemblies"><see cref="Assembly"/> instances to scan for precompiled views.</param>
 public PrecompiledViewsCompilerCacheProvider(
     IAssemblyLoadContextAccessor loadContextAccessor,
     IRazorViewEngineFileProviderAccessor fileProviderAccessor,
     IEnumerable<Assembly> assemblies)
 {
     _loadContextAccessor = loadContextAccessor;
     _fileProvider = fileProviderAccessor.FileProvider;
     _createCache = CreateCache;
     _assemblies = assemblies.ToArray();
 }
コード例 #17
0
 /// <summary>
 /// Instantiates a new instance of the <see cref="RazorCompilationService"/> class.
 /// </summary>
 /// <param name="compilationService">The <see cref="ICompilationService"/> to compile generated code.</param>
 /// <param name="razorHost">The <see cref="IMvcRazorHost"/> to generate code from Razor files.</param>
 /// <param name="fileProviderAccessor">The <see cref="IRazorViewEngineFileProviderAccessor"/>.</param>
 public RazorCompilationService(
     ICompilationService compilationService,
     IMvcRazorHost razorHost,
     IRazorViewEngineFileProviderAccessor fileProviderAccessor,
     ILoggerFactory loggerFactory)
 {
     _compilationService = compilationService;
     _razorHost          = razorHost;
     _fileProvider       = fileProviderAccessor.FileProvider;
     _logger             = loggerFactory.CreateLogger <RazorCompilationService>();
 }
コード例 #18
0
 /// <summary>
 /// Instantiates a new instance of the <see cref="RazorCompilationService"/> class.
 /// </summary>
 /// <param name="compilationService">The <see cref="ICompilationService"/> to compile generated code.</param>
 /// <param name="razorHost">The <see cref="IMvcRazorHost"/> to generate code from Razor files.</param>
 /// <param name="fileProviderAccessor">The <see cref="IRazorViewEngineFileProviderAccessor"/>.</param>
 /// <param name="loggerFactory">The <see cref="ILoggerFactory"/>.</param>
 public RazorCompilationService(
     ICompilationService compilationService,
     IMvcRazorHost razorHost,
     IRazorViewEngineFileProviderAccessor fileProviderAccessor,
     ILoggerFactory loggerFactory)
 {
     _compilationService = compilationService;
     _razorHost = razorHost;
     _fileProvider = fileProviderAccessor.FileProvider;
     _logger = loggerFactory.CreateLogger<RazorCompilationService>();
 }
コード例 #19
0
 /// <summary>
 /// Initalizes a new instance of the <see cref="DefaultRoslynCompilationService"/> class.
 /// </summary>
 /// <param name="compiler">The <see cref="CSharpCompiler"/>.</param>
 /// <param name="optionsAccessor">Accessor to <see cref="RazorViewEngineOptions"/>.</param>
 /// <param name="fileProviderAccessor">The <see cref="IRazorViewEngineFileProviderAccessor"/>.</param>
 /// <param name="loggerFactory">The <see cref="ILoggerFactory"/>.</param>
 public DefaultRoslynCompilationService(
     CSharpCompiler compiler,
     IRazorViewEngineFileProviderAccessor fileProviderAccessor,
     IOptions <RazorViewEngineOptions> optionsAccessor,
     ILoggerFactory loggerFactory)
 {
     _compiler            = compiler;
     _fileProvider        = fileProviderAccessor.FileProvider;
     _compilationCallback = optionsAccessor.Value.CompilationCallback;
     _logger = loggerFactory.CreateLogger <DefaultRoslynCompilationService>();
 }
コード例 #20
0
 public DefaultStaticFilesFactory(IOptions <ReusableMvcOptions> options,
                                  IRazorViewEngineFileProviderAccessor fileProviderAccessor,
                                  PipelineDecisionTree pipelineDecisionTree, IHostingEnvironment env,
                                  IActionContextAccessor actionContextAccessor)
 {
     _options = options;
     _pipelineDecisionTree  = pipelineDecisionTree;
     _actionContextAccessor = actionContextAccessor;
     _minifySuffix          = env.IsDevelopment() ? null : ".min";
     _fileProvider          = fileProviderAccessor.FileProvider;
     _env = env;
 }
コード例 #21
0
        public WebPagesRouter(IHostingEnvironment hostingEnvironment, RazorViewToStringRenderer renderer, WebPagesOptions opts, IRazorViewEngineFileProviderAccessor fileProviderAccessor)
        {
            if (opts == null)
            {
                throw new ArgumentNullException(nameof(opts));
            }

            _hostingEnvironment = hostingEnvironment;
            _renderer           = renderer;
            _opts = opts;
            _fileProviderAccessor = fileProviderAccessor;
        }
コード例 #22
0
 /// <summary>
 /// Initalizes a new instance of the <see cref="DefaultRoslynCompilationService"/> class.
 /// </summary>
 /// <param name="environment">The <see cref="IHostingEnvironment"/>.</param>
 /// <param name="optionsAccessor">Accessor to <see cref="RazorViewEngineOptions"/>.</param>
 /// <param name="fileProviderAccessor">The <see cref="IRazorViewEngineFileProviderAccessor"/>.</param>
 /// <param name="loggerFactory">The <see cref="ILoggerFactory"/>.</param>
 public DefaultRoslynCompilationService(
     IHostingEnvironment environment,
     IOptions<RazorViewEngineOptions> optionsAccessor,
     IRazorViewEngineFileProviderAccessor fileProviderAccessor,
     ILoggerFactory loggerFactory)
     : this(
           GetDependencyContext(environment),
           optionsAccessor.Value,
           fileProviderAccessor,
           loggerFactory)
 {
 }
コード例 #23
0
 /// <summary>
 /// Initalizes a new instance of the <see cref="DefaultRoslynCompilationService"/> class.
 /// </summary>
 /// <param name="environment">The <see cref="IHostingEnvironment"/>.</param>
 /// <param name="optionsAccessor">Accessor to <see cref="RazorViewEngineOptions"/>.</param>
 /// <param name="fileProviderAccessor">The <see cref="IRazorViewEngineFileProviderAccessor"/>.</param>
 /// <param name="loggerFactory">The <see cref="ILoggerFactory"/>.</param>
 public DefaultRoslynCompilationService(
     IHostingEnvironment environment,
     IOptions <RazorViewEngineOptions> optionsAccessor,
     IRazorViewEngineFileProviderAccessor fileProviderAccessor,
     ILoggerFactory loggerFactory)
     : this(
         GetDependencyContext(environment),
         optionsAccessor.Value,
         fileProviderAccessor,
         loggerFactory)
 {
 }
コード例 #24
0
        public ModuleEmbeddedFileProvider(IServiceProvider services)
        {
            var env = services.GetRequiredService <IHostingEnvironment>();

            _moduleOptions        = services.GetRequiredService <IOptions <ModuleOptions> >();
            _moduleManager        = services.GetRequiredService <IModuleManager>();
            _fileProviderAccessor = services.GetRequiredService <IRazorViewEngineFileProviderAccessor>();

            _modulesFolder = _moduleOptions.Value.VirtualPathToModulesFolder;
            _modulesRoot   = _moduleOptions.Value.VirtualPathToModulesFolder + "/";
            _root          = env.ContentRootPath;
        }
コード例 #25
0
 // Internal for unit testing
 internal DefaultRoslynCompilationService(
     DependencyContext dependencyContext,
     RazorViewEngineOptions viewEngineOptions,
     IRazorViewEngineFileProviderAccessor fileProviderAccessor,
     ILoggerFactory loggerFactory)
 {
     _dependencyContext   = dependencyContext;
     _fileProvider        = fileProviderAccessor.FileProvider;
     _compilationCallback = viewEngineOptions.CompilationCallback;
     _parseOptions        = viewEngineOptions.ParseOptions;
     _compilationOptions  = viewEngineOptions.CompilationOptions;
     _logger = loggerFactory.CreateLogger <DefaultRoslynCompilationService>();
 }
コード例 #26
0
 /// <summary>
 /// Initalizes a new instance of the <see cref="DefaultRoslynCompilationService"/> class.
 /// </summary>
 /// <param name="environment">The <see cref="IHostingEnvironment"/>.</param>
 /// <param name="optionsAccessor">Accessor to <see cref="RazorViewEngineOptions"/>.</param>
 /// <param name="fileProviderAccessor">The <see cref="IRazorViewEngineFileProviderAccessor"/>.</param>
 /// <param name="loggerFactory">The <see cref="ILoggerFactory"/>.</param>
 public DefaultRoslynCompilationService(
     IHostingEnvironment environment,
     IOptions<RazorViewEngineOptions> optionsAccessor,
     IRazorViewEngineFileProviderAccessor fileProviderAccessor,
     ILoggerFactory loggerFactory)
 {
     _hostingEnvironment = environment;
     _fileProvider = fileProviderAccessor.FileProvider;
     _compilationCallback = optionsAccessor.Value.CompilationCallback;
     _parseOptions = optionsAccessor.Value.ParseOptions;
     _compilationOptions = optionsAccessor.Value.CompilationOptions;
     _logger = loggerFactory.CreateLogger<DefaultRoslynCompilationService>();
 }
コード例 #27
0
 /// <summary>
 /// Initalizes a new instance of the <see cref="DefaultRoslynCompilationService"/> class.
 /// </summary>
 /// <param name="environment">The <see cref="IHostingEnvironment"/>.</param>
 /// <param name="optionsAccessor">Accessor to <see cref="RazorViewEngineOptions"/>.</param>
 /// <param name="fileProviderAccessor">The <see cref="IRazorViewEngineFileProviderAccessor"/>.</param>
 /// <param name="loggerFactory">The <see cref="ILoggerFactory"/>.</param>
 public DefaultRoslynCompilationService(
     IHostingEnvironment environment,
     IOptions <RazorViewEngineOptions> optionsAccessor,
     IRazorViewEngineFileProviderAccessor fileProviderAccessor,
     ILoggerFactory loggerFactory)
 {
     _hostingEnvironment  = environment;
     _fileProvider        = fileProviderAccessor.FileProvider;
     _compilationCallback = optionsAccessor.Value.CompilationCallback;
     _parseOptions        = optionsAccessor.Value.ParseOptions;
     _compilationOptions  = optionsAccessor.Value.CompilationOptions;
     _logger = loggerFactory.CreateLogger <DefaultRoslynCompilationService>();
 }
コード例 #28
0
 /// <summary>
 /// Initalizes a new instance of the <see cref="DnxRoslynCompilationService"/> class.
 /// </summary>
 /// <param name="environment">The environment for the executing application.</param>
 /// <param name="libraryManager">The <see cref="IOrchardLibraryManager"/>.</param>
 /// <param name="libraryExporter">The library manager that provides export and reference information.</param>
 /// <param name="optionsAccessor">Accessor to <see cref="RazorViewEngineOptions"/>.</param>
 /// <param name="fileProviderAccessor">The <see cref="IRazorViewEngineFileProviderAccessor"/>.</param>
 /// <param name="loaderAccessor"> The accessor for the <see cref="IAssemblyLoadContext"/> used to load compiled assemblies.</param>
 public DnxRoslynCompilationService(
     IHostingEnvironment environment,
     IOrchardLibraryManager libraryManager,
     ILibraryExporter libraryExporter,
     IOptions <RazorViewEngineOptions> optionsAccessor,
     IRazorViewEngineFileProviderAccessor fileProviderAccessor,
     IAssemblyLoadContextAccessor loaderAccessor)
 {
     _environment           = environment;
     _libraryManager        = libraryManager;
     _libraryExporter       = libraryExporter;
     _options               = optionsAccessor.Value;
     _applicationReferences = new Lazy <List <MetadataReference> >(GetApplicationReferences);
     _loader = loaderAccessor.GetLoadContext(typeof(DnxRoslynCompilationService).GetTypeInfo().Assembly);
 }
コード例 #29
0
        public FileProviderRazorProject(IRazorViewEngineFileProviderAccessor accessor, IHostingEnvironment hostingEnviroment)
        {
            if (accessor == null)
            {
                throw new ArgumentNullException(nameof(accessor));
            }

            if (hostingEnviroment == null)
            {
                throw new ArgumentNullException(nameof(hostingEnviroment));
            }

            _provider           = accessor.FileProvider;
            _hostingEnvironment = hostingEnviroment;
        }
コード例 #30
0
        /// <summary>
        /// Initalizes a new instance of the <see cref="DnxRoslynCompilationService"/> class.
        /// </summary>
        /// <param name="environment">The environment for the executing application.</param>
        /// <param name="libraryExporter">The library manager that provides export and reference information.</param>
        /// <param name="optionsAccessor">Accessor to <see cref="RazorViewEngineOptions"/>.</param>
        /// <param name="fileProviderAccessor">The <see cref="IRazorViewEngineFileProviderAccessor"/>.</param>
        public DnxRoslynCompilationService(
            IHostingEnvironment environment,
            ILibraryExporter libraryExporter,
            IOptions <RazorViewEngineOptions> optionsAccessor,
            IRazorViewEngineFileProviderAccessor fileProviderAccessor)
        {
            _environment           = environment;
            _libraryExporter       = libraryExporter;
            _options               = optionsAccessor.Value;
            _applicationReferences = new Lazy <List <MetadataReference> >(GetApplicationReferences);

#if NETSTANDARD1_5
            _razorLoadContext = new RazorLoadContext();
#endif
        }
コード例 #31
0
        // Internal for unit testing
        internal DefaultRoslynCompilationService(
            DependencyContext dependencyContext,
            RazorViewEngineOptions viewEngineOptions,
            IRazorViewEngineFileProviderAccessor fileProviderAccessor,
            ILoggerFactory loggerFactory)
        {
            _dependencyContext     = dependencyContext;
            _applicationReferences = new Lazy <List <MetadataReference> >(GetApplicationReferences);
            _fileProvider          = fileProviderAccessor.FileProvider;
            _compilationCallback   = viewEngineOptions.CompilationCallback;
            _parseOptions          = viewEngineOptions.ParseOptions;
            _compilationOptions    = viewEngineOptions.CompilationOptions;
            _logger = loggerFactory.CreateLogger <DefaultRoslynCompilationService>();

#if NETSTANDARD1_5
            _razorLoadContext = new RazorLoadContext();
#endif
        }
コード例 #32
0
        // Internal for unit testing
        internal DefaultRoslynCompilationService(
            DependencyContext dependencyContext,
            RazorViewEngineOptions viewEngineOptions,
            IRazorViewEngineFileProviderAccessor fileProviderAccessor,
            ILoggerFactory loggerFactory)
        {
            _dependencyContext = dependencyContext;
            _applicationReferences = new Lazy<List<MetadataReference>>(GetApplicationReferences);
            _fileProvider = fileProviderAccessor.FileProvider;
            _compilationCallback = viewEngineOptions.CompilationCallback;
            _parseOptions = viewEngineOptions.ParseOptions;
            _compilationOptions = viewEngineOptions.CompilationOptions;
            _logger = loggerFactory.CreateLogger<DefaultRoslynCompilationService>();

#if NETSTANDARD1_5
            _razorLoadContext = new RazorLoadContext();
#endif
        }
コード例 #33
0
 public SharedViewCompilerProvider(
     ApplicationPartManager applicationPartManager,
     IRazorViewEngineFileProviderAccessor fileProviderAccessor,
     IEnumerable <IApplicationFeatureProvider <ViewsFeature> > viewsFeatureProviders,
     IHostingEnvironment hostingEnvironment,
     RazorTemplateEngine razorTemplateEngine,
     CSharpCompiler csharpCompiler,
     IOptions <RazorViewEngineOptions> viewEngineOptionsAccessor,
     ILoggerFactory loggerFactory)
 {
     _applicationPartManager = applicationPartManager;
     _fileProviderAccessor   = fileProviderAccessor;
     _viewsFeatureProviders  = viewsFeatureProviders;
     _hostingEnvironment     = hostingEnvironment;
     _razorTemplateEngine    = razorTemplateEngine;
     _csharpCompiler         = csharpCompiler;
     _viewEngineOptions      = viewEngineOptionsAccessor.Value;
     _logger = loggerFactory.CreateLogger <SharedViewCompilerProvider>();
 }
コード例 #34
0
        public DynamicRazorViewCompilerProvider(
            ApplicationPartManager applicationPartManager,
            RazorTemplateEngine razorTemplateEngine,
            IRazorViewEngineFileProviderAccessor fileProviderAccessor,
            CSharpCompiler csharpCompiler,
            IMemoryCache memoryCache,
            IOptions <RazorViewEngineOptions> viewEngineOptionsAccessor,
            ILoggerFactory loggerFactory)
        {
            _applicationPartManager = applicationPartManager;
            _razorTemplateEngine    = razorTemplateEngine;
            _fileProviderAccessor   = fileProviderAccessor;
            _csharpCompiler         = csharpCompiler;
            _viewEngineOptions      = viewEngineOptionsAccessor.Value;
            _memoryCache            = memoryCache;

            _logger         = loggerFactory.CreateLogger <RazorViewCompiler>();
            _createCompiler = CreateCompiler;
        }
コード例 #35
0
        public ComponentViewLocationExpanderProvider(
            IRazorViewEngineFileProviderAccessor fileProviderAccessor,
            IExtensionManager extensionManager,
            ShellDescriptor shellDescriptor,
            IMemoryCache memoryCache)
        {
            _extensionManager = extensionManager;
            _shellDescriptor  = shellDescriptor;
            _memoryCache      = memoryCache;

            if (_modulesWithComponentViews != null)
            {
                return;
            }

            lock (_synLock)
            {
                if (_modulesWithComponentViews == null)
                {
                    var modulesWithComponentViews = new List <IExtensionInfo>();

                    var orderedModules = _extensionManager.GetExtensions()
                                         .Where(e => e.Manifest.Type.Equals("module", StringComparison.OrdinalIgnoreCase))
                                         .Reverse();

                    foreach (var module in orderedModules)
                    {
                        var moduleComponentsViewFilePaths = fileProviderAccessor.FileProvider.GetViewFilePaths(
                            module.SubPath + "/Views/Shared/Components", new[] { RazorViewEngine.ViewExtension },
                            viewsFolder: null, inViewsFolder: true, inDepth: true);

                        if (moduleComponentsViewFilePaths.Any())
                        {
                            modulesWithComponentViews.Add(module);
                        }
                    }

                    _modulesWithComponentViews = modulesWithComponentViews;
                }
            }
        }
コード例 #36
0
        /// <summary>
        /// Initalizes a new instance of the <see cref="RoslynCompilationService"/> class.
        /// </summary>
        /// <param name="environment">The environment for the executing application.</param>
        /// <param name="libraryExporter">The library manager that provides export and reference information.</param>
        /// <param name="host">The <see cref="IMvcRazorHost"/> that was used to generate the code.</param>
        /// <param name="optionsAccessor">Accessor to <see cref="RazorViewEngineOptions"/>.</param>
        /// <param name="fileProviderAccessor">The <see cref="IRazorViewEngineFileProviderAccessor"/>.</param>
        public RoslynCompilationService(
            IApplicationEnvironment environment,
            Extensions.CompilationAbstractions.ILibraryExporter libraryExporter,
            IMvcRazorHost host,
            IOptions <RazorViewEngineOptions> optionsAccessor,
            IRazorViewEngineFileProviderAccessor fileProviderAccessor,
            ILoggerFactory loggerFactory)
        {
            _environment           = environment;
            _libraryExporter       = libraryExporter;
            _applicationReferences = new Lazy <List <MetadataReference> >(GetApplicationReferences);
            _fileProvider          = fileProviderAccessor.FileProvider;
            _classPrefix           = host.MainClassNamePrefix;
            _compilationCallback   = optionsAccessor.Value.CompilationCallback;
            _parseOptions          = optionsAccessor.Value.ParseOptions;
            _compilationOptions    = optionsAccessor.Value.CompilationOptions;
            _logger = loggerFactory.CreateLogger <RoslynCompilationService>();

#if DOTNET5_5
            _razorLoadContext = new RazorLoadContext();
#endif
        }
コード例 #37
0
        /// <summary>
        /// Initalizes a new instance of the <see cref="RoslynCompilationService"/> class.
        /// </summary>
        /// <param name="environment">The environment for the executing application.</param>
        /// <param name="libraryExporter">The library manager that provides export and reference information.</param>
        /// <param name="host">The <see cref="IMvcRazorHost"/> that was used to generate the code.</param>
        /// <param name="optionsAccessor">Accessor to <see cref="RazorViewEngineOptions"/>.</param>
        /// <param name="fileProviderAccessor">The <see cref="IRazorViewEngineFileProviderAccessor"/>.</param>
        public RoslynCompilationService(
            IApplicationEnvironment environment,
            Extensions.CompilationAbstractions.ILibraryExporter libraryExporter,
            IMvcRazorHost host,
            IOptions<RazorViewEngineOptions> optionsAccessor,
            IRazorViewEngineFileProviderAccessor fileProviderAccessor,
            ILoggerFactory loggerFactory)
        {
            _environment = environment;
            _libraryExporter = libraryExporter;
            _applicationReferences = new Lazy<List<MetadataReference>>(GetApplicationReferences);
            _fileProvider = fileProviderAccessor.FileProvider;
            _classPrefix = host.MainClassNamePrefix;
            _compilationCallback = optionsAccessor.Value.CompilationCallback;
            _parseOptions = optionsAccessor.Value.ParseOptions;
            _compilationOptions = optionsAccessor.Value.CompilationOptions;
            _logger = loggerFactory.CreateLogger<RoslynCompilationService>();

#if DOTNET5_5
            _razorLoadContext = new RazorLoadContext();
#endif
        }
コード例 #38
0
        public SharedCompilerCacheProvider(
            ApplicationPartManager applicationPartManager,
            IRazorViewEngineFileProviderAccessor fileProviderAccessor,
            IHostingEnvironment env)
        {
            lock (_synLock)
            {
                if (_cache == null)
                {
                    var feature = new ViewsFeature();

                    // Applying ViewsFeatureProvider to gather any precompiled view
                    new ViewsFeatureProvider().PopulateFeature(
                        new AssemblyPart[]
                    {
                        new AssemblyPart(Assembly.Load(new AssemblyName(env.ApplicationName)))
                    },
                        feature);

                    _cache = new CompilerCache(fileProviderAccessor.FileProvider, feature.Views);
                }
            }
        }
コード例 #39
0
 public CustomCompilationService(CSharpCompiler compiler,
     IRazorViewEngineFileProviderAccessor fileProviderAccessor, IOptions<RazorViewEngineOptions> optionsAccessor,
     ILoggerFactory loggerFactory) : base(compiler, fileProviderAccessor, optionsAccessor, loggerFactory)
 {
 }
コード例 #40
0
 /// <summary>
 /// Initializes a new instance of <see cref="DefaultCompilerCacheProvider"/>.
 /// </summary>
 /// <param name="fileProviderAccessor">The <see cref="IRazorViewEngineFileProviderAccessor"/>.</param>
 public DefaultCompilerCacheProvider(IRazorViewEngineFileProviderAccessor fileProviderAccessor)
 {
     Cache = new CompilerCache(fileProviderAccessor.FileProvider);
 }