微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从 Web API 向类库依赖项提供配置

如何解决如何从 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 举报,一经查实,本站将立刻删除。