如何在自定义类构造函数中注入单例并使用它 .NET 核心 2

我在测试方面没有丰富的经验,但我正在为我创建的一个类设置一个单例实例注入。但是,我不知道如何调用该类。如果我打电话,我需要构造函数。如果我创建一个额外的空构造函数,则依赖项将显示为 null。


我花了几天时间在文档中寻找它,但它只显示了如何注入的示例。之后我找不到如何实例化该类。


另外,我看到了一些示例,但其中许多都使用 MVC 控制器,它们由框架自动实例化。


Connector.cs

public class Connector

{

    private IConfiguration _configuration;

    public Connector(IConfiguration configuration) {

       _configuration = configuration;

    }


    public Connector() {

    } 


    public string DoSomething() {

      //return Something related to _configuration

    }

}


startup.cs

public void ConfigureServices(IServiceCollection services)

{    

    //Other default config


     services.AddSingleton(new Connector(Configuration));

 }


 HomeController.cs

 public IActionResult Index()

 {


        var x = (new Connector()).DoSomething(); //This will fail as _configuration is not injected

        return View();

 }

如何使用注入的配置调用连接器?我错过了任何依赖解决吗?我是不是叫错了班级?


我希望有人可以对此有所了解。


慕娘9325324
浏览 95回答 1
1回答

料青山看我应如是

DI 容器的想法是您不需要在方法中处理对象创建。您HomeController也不需要知道是否Connector实际上是单例。您只需将依赖项注入构造函数。由于您已将其配置为单例,因此 DI 容器Connector每次都会解析为同一个实例。public class HomeController {     private readonly Connector _connector;    public HomeController(Connector connector)    {        _connector = connector;    }    public IActionResult Index()    {        var x = _connector.DoSomething();        // ...    }
打开App,查看更多内容
随时随地看视频慕课网APP