小编Y.Z*_*.Z.的帖子

ASP.NET 5依赖注入 - [FromServices]属性是否仅在控制器中工作?

使用asp.net 5 beta-8,我有这样的东西注册为服务:

services.AddTransient<IMyClass, MyClass>();
Run Code Online (Sandbox Code Playgroud)

当我在控制器中的属性上使用此属性时,myClass将设置为该实例IMyClass.

public class HomeController : Controller
{
    [FromServices]
    public IMyClass myClass { get; set; }

    public IActionResult Index()
    {
        //myClass is good
        return View();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试在不继承的类中使用它时Controller,它似乎没有将myClass属性设置为以下实例IMyClass:

public class MyService
{
    [FromServices]
    public IMyClass myClass { get; set; }

    public void DoSomething(){
      //myClass is null
    }
}
Run Code Online (Sandbox Code Playgroud)

这是预期的行为吗?如何在常规类中注入依赖项?

dependency-injection asp.net-core-mvc asp.net-core

8
推荐指数
1
解决办法
6828
查看次数