如何将依赖项注入到通过startup.cs中的appsettings绑定实例化的类中?

时间:2019-07-19 22:08:00

标签: c# dependency-injection configuration

我在startup.cs中使用了一个帮助程序类来配置某些依赖项;当我需要使用它时,我一直在通过绑定appsettings.json中的一些值来获取它的实例。现在,我想向其中注入一个记录器,但是我很难确定该如何做。我知道我可以在构造函数中传递记录器,但是我想知道是否有一种方法可以使它像我的api控制器那样工作。我对那些实例化方法有些模糊。

在调用该类之前,我曾尝试将其添加到服务中。没有骰子。无参数构造函数显然可以工作,但不提供依赖项。

//In startup.cs, ConfigureServices
//Pulling helper out of config and calling method
var value = Configuration.GetSection("Foo:Bar").Get<SomeClass>().SomeMethod();

//Example helper class
//SomeClass.cs
public class SomeClass
{
    private readonly ILogger<SomeClass> _logger;
    public SomeClass(ILogger<SomeClass> logger)
    {
        _logger = logger;
    }

  //properties

    public string SomeMethod()
    {
        //do some stuff

        //log results
        return value;
    }
}

要么logger依赖项为null,要么抱怨没有无参数构造函数。

0 个答案:

没有答案