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. AddDefaultPhases(builder.Phases); AddDefaultFeatures(builder.Features); if (configuration.LanguageVersion.CompareTo(RazorLanguageVersion.Version_3_0) >= 0) { FunctionsDirective.Register(builder); ImplementsDirective.Register(builder); InheritsDirective.Register(builder); NamespaceDirective.Register(builder); AttributeDirective.Register(builder); AddComponentFeatures(builder); } LoadExtensions(builder, configuration.Extensions); configure?.Invoke(builder); return(builder.Build()); }
public DefaultRazorProjectEngine( RazorConfiguration configuration, RazorEngine engine, RazorProjectFileSystem fileSystem, IReadOnlyList <IRazorProjectEngineFeature> projectFeatures) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } if (engine == null) { throw new ArgumentNullException(nameof(engine)); } if (fileSystem == null) { throw new ArgumentNullException(nameof(fileSystem)); } if (projectFeatures == null) { throw new ArgumentNullException(nameof(projectFeatures)); } Configuration = configuration; Engine = engine; FileSystem = fileSystem; ProjectFeatures = projectFeatures; for (var i = 0; i < projectFeatures.Count; i++) { projectFeatures[i].ProjectEngine = this; } }
public static RazorProjectEngine Create(RazorConfiguration configuration, RazorProjectFileSystem fileSystem) => Create(configuration, fileSystem, configure: null);
public static RazorProjectEngine Create(RazorProjectFileSystem fileSystem, Action <RazorProjectEngineBuilder> configure) => Create(fileSystem, RazorConfiguration.Default, configure);