从同一解决方案中的另一个项目热访问 appsettings.json?
Hot to access appsettings.json from another project in same solution?
我有两个项目的解决方案:
- ASP.NET 核心 6 Web API 项目
- Class 图书馆项目
我想从 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;
}
测试结果
我有两个项目的解决方案:
- ASP.NET 核心 6 Web API 项目
- Class 图书馆项目
我想从 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;
}
测试结果