【发布时间】:2019-12-08 07:46:45
【问题描述】:
在启动中:
services.AddTransient<IMyService, MyService>()
控制器方法:
[HttpGet]
public JsonResult GetSomething()
{
Helper helper = new Helper(new MyService()); // works but looking better solution
return Ok("");
}
助手类:
public class Helper
{
private readonly IMyService myService;
public Helper(IMyService myService)
{
this.myService = myService;
}
public Helper()
{
this.myService = ?;
}
}
我想实例化 Helper 类而不使用 new MyService() 手动注入依赖项。 MyService() 类应该是启动时的类。 我还想将 Helper 类放在另一个程序集中。
我看到一些代码
var service = (IFooService)serviceProvider.GetService(typeof(IMyService));
但我不知道如何获取 serviceProvider 实例而不将其注入助手。
【问题讨论】:
-
这能回答你的问题吗? Resolving instances with ASP.NET Core DI
-
然后注册助手并将其注入控制器。容器会注入相关的依赖。
标签: c# asp.net-core dependency-injection