.NetCore选项组件服务组件集成配置

1. 特性

  • 支持单例模式读取配置
  • 支持快照
  • 支持配置变更通知
  • 支持运行时动态修改选项值

2. 设计原则

  • 接口分离原则(ISP),我们的类不应该依赖它不使用的配置
  • 关注点分离(Soc),不同组件、服务、类之间的配置不应互相依赖或耦合

3. 建议

  • 为我们的服务设计 XXXOptions
  • 使用 IOptions<XXXOptions> ,IOptionsSnapshot<XXXOptions>  ,IOptionsMonitor<XXXOptions> 作为服务构造函数的参数

4. 服务代码

    public interface IOrderService
    {
        int ShowMaxCount();
    }

    public class OrderService : IOrderService
    {
        IOptions<OrderServiceOptions> _options;

        public OrderService(IOptions<OrderServiceOptions> options)
        {
            this._options = options;
        }

        public int ShowMaxCount()
        {
            return _options.Value.MaxCount;
        }
    }

    public class OrderServiceOptions
    {
        public int MaxCount { get; set; } = 100;
    }

5. 注册服务代码

        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure<OrderServiceOptions>(Configuration.GetSection("OrderService"));
            services.AddSingleton<IOrderService, OrderService>();

            services.AddControllers();
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo { Title = "Net_Core", Version = "v1" });
            });
        }

6. 配置文件代码

    "OrderService": {
        "MaxCount": 200
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值