是否有一种内置的方式来序列化数组配置值

本文关键字:方式 序列化 数组 配置 内置 一种 是否 | 更新日期: 2023-09-27 18:03:57

我正在使用一个新的ASP。. NET 5项目。

我试图读取一个数组值,存储在我的config.json文件中,看起来像这样:

{
  "AppSettings": {
    "SiteTitle": "MyProject",
    "Tenants": {
      "ReservedSubdomains": ["www", "info", "admin"]
    }
  },
  "Data": {
    "DefaultConnection": {
      "ConnectionString": "Server=(localdb)''mssqllocaldb;Database=aspnet5-MyProject....."
    }
  }
}

我如何从我的c#代码访问这个?

是否有一种内置的方式来序列化数组配置值

至少在beta4中不支持config.json中的数组。看到ASP。NET第620期。但您可以使用以下config.json:

"AppSettings": {
  "SiteTitle": "MyProject",
  "Tenants": {
    "ReservedSubdomains": "www, info, admin"
  }
}

并将其映射到如下的类:

public class AppSettings
{
  public string SiteTitle { get; set; }
  public AppSettingsTenants Tenants { get; set; } = new AppSettingsTenants();
}
public class AppSettingsTenants
{
  public string ReservedSubdomains { get; set; }
  public List<string> ReservedSubdomainList
  {
     get { return !string.IsNullOrEmpty(ReservedSubdomains) ? ReservedSubdomains.Split(',').ToList() : new List<string>(); }
  }
}

这可以被注入到控制器中:

public class MyController : Controller
{
  private readonly AppSettings _appSettings;
  public MyController(IOptions<AppSettings> appSettings)
  {
     _appSettings = appSettings.Options;
  }