我在測試方面沒有豐富的經驗,但我正在為我創建的一個類設置一個單例實例注入。但是,我不知道如何調用該類。如果我打電話,我需要構造函數。如果我創建一個額外的空構造函數,則依賴項將顯示為 null。我花了幾天時間在文檔中尋找它,但它只顯示了如何注入的示例。之后我找不到如何實例化該類。另外,我看到了一些示例,但其中許多都使用 MVC 控制器,它們由框架自動實例化。Connector.cspublic class Connector{ private IConfiguration _configuration; public Connector(IConfiguration configuration) { _configuration = configuration; } public Connector() { } public string DoSomething() { //return Something related to _configuration }}startup.cspublic 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(); }如何使用注入的配置調用連接器?我錯過了任何依賴解決嗎?我是不是叫錯了班級?我希望有人可以對此有所了解。
1 回答

料青山看我應如是
TA貢獻1772條經驗 獲得超8個贊
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();
// ...
}
- 1 回答
- 0 關注
- 113 瀏覽
添加回答
舉報
0/150
提交
取消