public ScriptHost()

in src/WebJobs.Script/Host/ScriptHost.cs [87:161]


        public ScriptHost(IOptions<JobHostOptions> options,
            IOptions<HttpWorkerOptions> httpWorkerOptions,
            IEnvironment environment,
            IJobHostContextFactory jobHostContextFactory,
            IConfiguration configuration,
            IDistributedLockManager distributedLockManager,
            IScriptEventManager eventManager,
            ILoggerFactory loggerFactory,
            IFunctionInvocationDispatcherFactory functionDispatcherFactory,
            IFunctionMetadataManager functionMetadataManager,
            IFileLoggingStatusManager fileLoggingStatusManager,
            IMetricsLogger metricsLogger,
            IOptions<ScriptJobHostOptions> scriptHostOptions,
            ITypeLocator typeLocator,
            IScriptHostManager scriptHostManager,
            IDebugStateProvider debugManager,
            IEnumerable<IScriptBindingProvider> bindingProviders,
            IPrimaryHostStateProvider primaryHostStateProvider,
            IJobHostMetadataProvider metadataProvider,
            IHostIdProvider hostIdProvider,
            IHttpRoutesManager httpRoutesManager,
            IApplicationLifetime applicationLifetime,
            IExtensionBundleManager extensionBundleManager,
            IFunctionDataCache functionDataCache,
            IOptionsMonitor<LanguageWorkerOptions> languageWorkerOptions,
            IOptions<FunctionsHostingConfigOptions> hostingConfigOptions,
            ScriptSettingsManager settingsManager = null)
            : base(options, jobHostContextFactory)
        {
            _environment = environment;
            _typeLocator = typeLocator as ScriptTypeLocator
                ?? throw new ArgumentException(nameof(typeLocator), $"A {nameof(ScriptTypeLocator)} instance is required.");

            _instanceId = Guid.NewGuid().ToString();
            _hostOptions = options;
            _configuration = configuration;
            _distributedLockManager = distributedLockManager;
            _functionMetadataManager = functionMetadataManager;
            _fileLoggingStatusManager = fileLoggingStatusManager;
            _applicationLifetime = applicationLifetime;
            _hostIdProvider = hostIdProvider;
            _httpRoutesManager = httpRoutesManager;
            _isHttpWorker = httpWorkerOptions.Value.Description != null;
            _httpWorkerOptions = httpWorkerOptions.Value;
            ScriptOptions = scriptHostOptions.Value;
            _scriptHostManager = scriptHostManager;
            FunctionErrors = new Dictionary<string, ICollection<string>>(StringComparer.OrdinalIgnoreCase);
            EventManager = eventManager;
            _functionDispatcher = functionDispatcherFactory.GetFunctionDispatcher();
            _settingsManager = settingsManager ?? ScriptSettingsManager.Instance;
            ExtensionBundleManager = extensionBundleManager;

            _metricsLogger = metricsLogger;

            _hostLogPath = Path.Combine(ScriptOptions.RootLogPath, "Host");

            _languageWorkerOptions = languageWorkerOptions;

            _loggerFactory = loggerFactory;
            _logger = loggerFactory.CreateLogger(LogCategories.Startup);
            Logger = _logger;

            _debugManager = debugManager;
            _primaryHostStateProvider = primaryHostStateProvider;
            _bindingProviders = new List<IScriptBindingProvider>(bindingProviders);
            _metadataProvider = metadataProvider;
            _eventSubscriptions.Add(EventManager.OfType<FunctionIndexingEvent>()
                .Subscribe(evt =>
                {
                    HandleHostError(evt.Exception);
                }));

            _functionDataCache = functionDataCache;
            _hostingConfigOptions = hostingConfigOptions;
        }