/// <summary> /// 设置 /// </summary> /// <param name="configuration">配置</param> /// <param name="options">配置对象</param> internal static void SetRabbitMqOptions(IConfiguration configuration, RabbitMqMessageBusOptions options) { string uri = configuration.GetValue <string>("RabbitMQ.Default.Uri"); if (string.IsNullOrWhiteSpace(uri)) { throw new ConfigException("RabbitMQ.Default.Uri"); } string username = configuration.GetValue <string>("RabbitMQ.Default.Username"); if (string.IsNullOrWhiteSpace(username)) { throw new ConfigException("RabbitMQ.Default.Username"); } string password = configuration.GetValue <string>("RabbitMQ.Default.Password"); if (string.IsNullOrWhiteSpace(password)) { throw new ConfigException("RabbitMQ.Default.Password"); } string exchange = configuration.GetValue <string>("RabbitMQ.Default.Exchange"); if (!string.IsNullOrWhiteSpace(exchange)) { throw new ConfigException("RabbitMQ.Default.Exchange"); } options.Uri = uri; options.Username = username; options.Password = password; options.Exchange = exchange; }
/// <summary> /// 构造函数 /// </summary> /// <param name="options"></param> /// <param name="loggerFactory"></param> public DefaultRabbitMqMessageBus(IOptions <RabbitMqMessageBusOptions> options, ILoggerFactory loggerFactory) { _options = options.Value; _loggerLazy = new Lazy <ILogger>(() => loggerFactory?.CreateLogger <DefaultRabbitMqMessageBus>() ?? NullLogger <DefaultRabbitMqMessageBus> .Instance); _connectionLazy = new Lazy <IConnection>(CreateConnection, true); }