/// <summary> /// Creates an engine with the specified application state and service provider. /// </summary> /// <param name="applicationState">The state of the application (or <c>null</c> for an empty application state).</param> /// <param name="configuration">The application configuration.</param> /// <param name="serviceCollection">The service collection (or <c>null</c> for an empty default service collection).</param> public Engine(ApplicationState applicationState, IConfiguration configuration, IServiceCollection serviceCollection) { _pipelines = new PipelineCollection(this); ApplicationState = applicationState ?? new ApplicationState(null, null, null); Settings = new ReadOnlyConfigurationSettings(configuration ?? new ConfigurationRoot(Array.Empty <IConfigurationProvider>())); _serviceScope = GetServiceScope(serviceCollection); _logger = Services.GetRequiredService <ILogger <Engine> >(); DocumentFactory = new DocumentFactory(Settings); _diagnosticsTraceListener = new DiagnosticsTraceListener(_logger); System.Diagnostics.Trace.Listeners.Add(_diagnosticsTraceListener); }
/// <summary> /// Creates an engine with the specified application state, configuration, and service provider. /// </summary> /// <param name="applicationState">The state of the application (or <c>null</c> for an empty application state).</param> /// <param name="serviceCollection">The service collection (or <c>null</c> for an empty default service collection).</param> /// <param name="configurationOverrides">Values that should override configuration values.</param> /// <param name="configuration">The application configuration.</param> public Engine(ApplicationState applicationState, IServiceCollection serviceCollection, IConfiguration configuration, IDictionary <string, object> configurationOverrides) { _pipelines = new PipelineCollection(this); ApplicationState = applicationState ?? new ApplicationState(null, null, null); ScriptHelper = new ScriptHelper(this); Settings = new ReadOnlyConfigurationSettings( this, configuration ?? new ConfigurationRoot(Array.Empty <IConfigurationProvider>()), configurationOverrides); _serviceScope = GetServiceScope(serviceCollection); _logger = Services.GetRequiredService <ILogger <Engine> >(); DocumentFactory = new DocumentFactory(this, Settings); _diagnosticsTraceListener = new DiagnosticsTraceListener(_logger); System.Diagnostics.Trace.Listeners.Add(_diagnosticsTraceListener); // Add the service-based pipelines as late as possible so other services have been configured AddServicePipelines(); }