如何解决如何从 Web API 向类库依赖项提供配置
我在与 Core Web API 相同的解决方案中有一个类库,我需要该库能够访问一些配置应用设置。
在控制台应用程序或 Web 窗体的世界中,我只需将这些设置放入 app.config(用于控制台)或 web.config(用于 ASP.NET 项目)并依靠 ConfigurationManager 来计算。但是,我发现这在 WebAPI 中不再起作用。
例如,我有以下控制器...
public class LabController : ControllerBase
{
[HttpGet]
public IActionResult Get()
{
TestUtility util = new TestUtility();
string result = util.Configtest();
return Ok( new { Message = result});
}
}
它依赖于单独的类库项目中的以下类...
public class TestUtility
{
public string Configtest()
{
string result = "I can't reach the configuration.";
try
{
result = ConfigurationManager.AppSettings["HomeAddress"].ToString();
}
catch (Exception) { }
return result;
}
}
这里是 appsettings.json 文件...
{
"Logging": {
"LogLevel": {
"Default": "information","Microsoft": "Warning","Microsoft.Hosting.Lifetime": "information"
}
},"AllowedHosts": "*","HomeAddress": "123 Elm St."
}
从服务返回的结果是配置失败消息,而不是“123 Elm St”。我想在类库中提供。 如何使主 (WebAPI) 项目中的配置设置可用于类库中的代码?
谢谢。
解决方法
如果在 DI 容器中注册了“TestUtility”类,您可以将配置注入到该类的构造函数中。
public class TestUtility
{
private readonly string _homeAddress;
public TestUtility(IConfiguration configuration)
{
_homeAddress = configuration["HomeAddress"]
}
public string ConfigTest()
{
return _homeAddress;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。