public EngineHandler( RazorLightOptions options, IRazorTemplateCompiler compiler, ITemplateFactoryProvider factoryProvider, ICachingProvider cache) { Options = options ?? throw new ArgumentNullException(nameof(options)); Compiler = compiler ?? throw new ArgumentNullException(nameof(compiler)); FactoryProvider = factoryProvider ?? throw new ArgumentNullException(nameof(factoryProvider)); Cache = cache; }
public virtual RazorLightEngine Build() { var options = new RazorLightOptions(); if (namespaces != null) { options.Namespaces = namespaces; } if (dynamicTemplates != null) { options.DynamicTemplates = dynamicTemplates; } if (metadataReferences != null) { options.AdditionalMetadataReferences = metadataReferences; } if (excludedAssemblies != null) { options.ExcludedAssemblies = excludedAssemblies; } if (prerenderCallbacks != null) { options.PreRenderCallbacks = prerenderCallbacks; } if (cachingProvider != null) { options.CachingProvider = cachingProvider; } var metadataReferenceManager = new DefaultMetadataReferenceManager(options.AdditionalMetadataReferences, options.ExcludedAssemblies); var assembly = operatingAssembly ?? Assembly.GetEntryAssembly(); var compiler = new RoslynCompilationService(metadataReferenceManager, assembly); var sourceGenerator = new RazorSourceGenerator(DefaultRazorEngine.Instance, project, options.Namespaces); var templateCompiler = new RazorTemplateCompiler(sourceGenerator, compiler, project, options); var templateFactoryProvider = new TemplateFactoryProvider(); var engineHandler = new EngineHandler(options, templateCompiler, templateFactoryProvider, cachingProvider); return(new RazorLightEngine(engineHandler)); }
/// <summary> ///Creates RazorLightEngine with a custom RazorLightProject /// </summary> /// <param name="project">The project</param> /// <returns>Instance of RazorLightEngine</returns> public virtual RazorLightEngine Create(RazorLightProject project, RazorLightOptions options = null) { return(null); }
public RazorLightEngine Create(RazorLightOptions options = null) { return(Create(null, options)); }
/// <summary> /// Creates RazorLightEngine with a embedded resource razor project /// </summary> /// <param name="rootType">Type of the root.</param> /// <param name="options">Engine options</param> /// <returns>Instance of RazorLightEngine</returns> public virtual RazorLightEngine ForEmbeddedResources(Type rootType, RazorLightOptions options) { var project = new EmbeddedRazorProject(rootType); return(Create(project, options)); }
/// <summary> /// Creates RazorLightEngine with a filesystem razor project /// </summary> /// <param name="root">Root folder where views are stored</param> /// <param name="options">Engine options</param> /// <returns>Instance of RazorLightEngine</returns> public virtual RazorLightEngine ForFileSystem(string root, RazorLightOptions options) { var project = new FileSystemRazorProject(root); return(Create(project, options)); }