,应为要绑定的是配置实体,所以传入MySqlDbOptions字符串必然返回null.因为调用System.Text.Json序列化配置文件时,并不会将顶级节点,写入,原因是他没有具体的配置值.所以接着看代码...Options实例的时候这个判断走不进去,但是这段代码也很清晰,说明当调用IConfigurationSection的Value属性读到值时,遍历到带值得节点时,会走TryConvertValue方法转换值...,实例绑定最终走的BindNonScalar方法,并循环调用BindInstance方法,绑定完所有的匹配的属性值,之后返回Options实例....Options.DefaultName;
return _cache.GetOrAdd(name, () => _factory.Create(name));
}
很清晰,将创建Options的实例方法持久化到字典中....所以当调用同一Options实例的CurrentValue属性时,不会重复调用_factory.Create方法而是直接返回第一次创建的Options实例.显然到这里并不能实现配置的监听.继续看源码,