/// <summary> /// 服务启动配置实例 /// </summary> /// <param name="services">服务实例(这些服务将以单例模式运行)。</param> /// <param name="serverConfig">服务器配置</param> /// <param name="instanceDescription">服务器实例描述</param> /// <param name="loggerFactory">日志</param> public ThriftyBootstrap( IEnumerable <Object> services, ThriftyServerOptions serverConfig, InstanceDescription instanceDescription, ILoggerFactory loggerFactory = null) : this(new InstanceServiceLocator(services), serverConfig, instanceDescription, loggerFactory) { Guard.ArgumentNotNull(services, nameof(services)); }
/// <summary> /// 服务启动配置实例 /// </summary> /// <param name="serviceLocator">服务定位器</param> /// <param name="serverConfig">服务器配置</param> /// <param name="instanceDescription">服务器实例描述</param> /// <param name="loggerFactory">日志</param> public ThriftyBootstrap( IServiceLocator serviceLocator, ThriftyServerOptions serverConfig, InstanceDescription instanceDescription, ILoggerFactory loggerFactory = null) { Guard.ArgumentNotNull(serviceLocator, nameof(serviceLocator)); Guard.ArgumentNotNull(serverConfig, nameof(serverConfig)); Guard.ArgumentNotNull(instanceDescription, nameof(instanceDescription)); this._logger = this._loggerFactory?.CreateLogger <ThriftyBootstrap>() ?? (ILogger)NullLogger.Instance; this._serverConfig = serverConfig; var checher = new ThriftyHealthCheck(); this._serviceLocator = new DelegateServiceLocator((ctx, x) => x == typeof(IHealthCheck) ? checher : serviceLocator.GetService(ctx, x)); this._instanceDescription = instanceDescription; this._loggerFactory = loggerFactory; this._services = new HashSet <ThriftyServiceDescriptor> { new ThriftyServiceDescriptor(typeof(IHealthCheck)) }; }