从同一解决方案中的另一个项目热访问 appsettings.json?

Hot to access appsettings.json from another project in same solution?

我有两个项目的解决方案:

我想从 class 库中访问 Web api 项目中的 appsettings.josn 文件。

api 项目已经引用了 class 库(Request/Response 模型、服务、处理程序等)。

将 api 项目的引用添加到 class 库会产生循环引用问题。

这个问题的最佳解决方案是什么?我是否放弃 2 项目解决方案结构并将所有内容都放在 1 个项目下?

创建一个 get 函数,return 您想要的项目信息,该项目是 json 设置的所有者

我们不建议使用 class 库中的 ConfigurationManager Class 来获取 appsettings.json 的值。

原因:

最佳实践

How to use the IOptions pattern for configuration in ASP.NET Core RC2

测试步骤和结果

Program.cs

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

builder.Services.AddOptions();

appsettings.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "ApplicationSettings": {
    "SmtpHost": "aa",
    "EmailRecipients": "bb"
  }
}

Class库中的模型和测试方法。

控制器中的测试方法

public string GetValue()
{
    GetValue g = new GetValue();
    string result = g.fortest(_settings.Value.SmtpHost,_settings.Value.EmailRecipients);
    return result;
}

测试结果