Exemplo n.º 1
0
        public RazorPreCompiler(
            BeforeCompileContext compileContext,
            IFileProvider fileProvider,
            IMemoryCache precompilationCache)
        {
            if (compileContext == null)
            {
                throw new ArgumentNullException(nameof(compileContext));
            }

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

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

            CompileContext = compileContext;
            FileProvider   = fileProvider;
            // There should always be a syntax tree even if there are no files (we generate one)
            Debug.Assert(compileContext.Compilation.SyntaxTrees.Length > 0);
            var defines = compileContext.Compilation.SyntaxTrees[0].Options.PreprocessorSymbolNames;

            CompilationSettings = new CompilationSettings
            {
                CompilationOptions = compileContext.Compilation.Options,
                Defines            = defines,
                LanguageVersion    = compileContext.Compilation.LanguageVersion
            };
            PreCompilationCache   = precompilationCache;
            TagHelperTypeResolver = new PrecompilationTagHelperTypeResolver(CompileContext.Compilation);
        }
Exemplo n.º 2
0
 public RazorPreCompiler(
     [NotNull] BeforeCompileContext compileContext,
     [NotNull] IAssemblyLoadContextAccessor loadContextAccessor,
     [NotNull] IFileProvider fileProvider,
     [NotNull] IMemoryCache precompilationCache,
     [NotNull] CompilationSettings compilationSettings)
 {
     CompileContext        = compileContext;
     LoadContext           = loadContextAccessor.GetLoadContext(GetType().GetTypeInfo().Assembly);
     FileProvider          = fileProvider;
     CompilationSettings   = compilationSettings;
     PreCompilationCache   = precompilationCache;
     TagHelperTypeResolver = new PrecompilationTagHelperTypeResolver(CompileContext, LoadContext);
 }