Example #1
0
 /// <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));
 }
Example #2
0
        /// <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))
            };
        }