目的

透過強行別的模式使用appsetting設定檔資料

建立新專案

選擇ASP.NET Core Web API專案範本,並執行下一步 步驟1

設定新的專案

命名你的專案名稱,並選擇專案要存放的位置。 步驟2

其他資訊

直接進行下一步 步驟3

設定appsetting檔案

在appsetting新增一筆json資料

  "PersonalInformation": {
    "Name": "Bill",
    "Age": 20
  }

步驟4

新增model資料夾,並在裡面新增AppsettingConfig類別檔

步驟5

編輯AppsettingConfig類別檔案

  public class PersonalInformation {
    public PersonalInformation() {
      Name = string.Empty;
    }
    public string Name { get; set; }
    public int Age { get; set; }
  }

步驟6

編輯Program.cs檔案

在program.cs中把appsetting的來源綁定在PersonalInformation這個class上

builder.Services.Configure<PersonalInformation>(
    builder.Configuration.GetSection("PersonalInformation"));

步驟7

注入所需要的地方

注入到預設的WeatherForecastController中,就可以使用。

    private readonly PersonalInformation _options;

    public WeatherForecastController(ILogger<WeatherForecastController> logger, IOptionsMonitor<PersonalInformation> options) {
      _logger = logger;
      _options = options.CurrentValue;
    }

此範例使用的是IOptionsMonitor

選項模式可使用singleton重載具名選項
IOptionsVXX
IOptionsSnapshotXVV
IOptionsMonitorVVV

步驟8

參考

選項模式 IOptions與IOptionsSnaphot與IOptionsMonitor 程式範例參考 options差別

範例檔

GitHub