Nongzhsh / Awesome.Net.WritableOptions

Awesome.Net.WritableOptions can update values into appsetting.json
MIT License
12 stars 4 forks source link

src/Awesome.Net.WritableOptions/Extensions/ServiceCollectionExtensions.cs #2

Closed VAllens closed 2 years ago

VAllens commented 3 years ago
public static void ConfigureWritableOptions<T>(this IServiceCollection services, IConfigurationSection section, string subPathOfFile = "appsettings.json") where T : class, new();

这个接口,应该将参数 section 的类型 IConfigurationSection 改成 IConfiguration

Nongzhsh commented 2 years ago

这个接口,应该将参数 section 的类型 IConfigurationSection 改成 IConfiguration

这里即将配置具体节点,传入 IConfigurationSection 是合理的

VAllens commented 2 years ago

这个接口,应该将参数 section 的类型 IConfigurationSection 改成 IConfiguration

这里即将配置具体节点,传入 IConfigurationSection 是合理的

如果subPathOfFile参数配的是独立的json文件,泛型参数T是这个json文件的根类型section参数应该如何传?

Nongzhsh commented 2 years ago

如果subPathOfFile参数配的是独立的json文件,泛型参数T是这个json文件的根类型section参数应该如何传?

在新的提交中已经重构了

VAllens commented 2 years ago

good... 现在的设计,T类型是json文件的一部分,请考虑下整个json文件对应整个T类型的情况。 因此建议sectionName参数可为空,即改为string? sectionName = null

ConfigureWritableOptions<T>方法:

services.Configure<T>(configuration.GetSection(sectionName));

改为

if(!string.IsNullOrEmpty(sectionName))
{
  services.Configure<T>(configuration.GetSection(sectionName));
}
else
{
  services.Configure<T>(configuration);
}

其它涉及sectionName参数的代码,大佬看着改。