public static RazorProjectEngine Create( RazorConfiguration configuration, RazorProjectFileSystem fileSystem, Action <RazorProjectEngineBuilder> configure) { if (fileSystem == null) { throw new ArgumentNullException(nameof(fileSystem)); } if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var builder = new DefaultRazorProjectEngineBuilder(configuration, fileSystem); // The intialization order is somewhat important. // // Defaults -> Extensions -> Additional customization // // This allows extensions to rely on default features, and customizations to override choices made by // extensions. RazorEngine.AddDefaultPhases(builder.Phases); AddDefaultsFeatures(builder.Features); LoadExtensions(builder, configuration.Extensions); configure?.Invoke(builder); return(builder.Build()); }
private static void AddEngineFeaturesAndPhases(RazorProjectEngineBuilder builder, IReadOnlyList <IRazorEngineFeature> engineFeatures) { for (var i = 0; i < engineFeatures.Count; i++) { var engineFeature = engineFeatures[i]; builder.Features.Add(engineFeature); } RazorEngine.AddDefaultPhases(builder.Phases); }