Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
        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);
        }