ASP.NET Core 1依赖注入:实现类型始终为null

时间:2016-02-02 01:30:00

标签: c# dependency-injection asp.net-core

我在ConfigureServices课程的Startup方法中有以下内容。 我正在添加ToastNotification的单例实例,这是IToastNotification的实现。

public void ConfigureServices(IServiceCollection services)
{
   services.AddInstance<IToastNotification>(new ToastNotification()
         {
         });
}

问题是,当我在此方法结束时调试时观察服务的值时,IToastNotification服务的实现类型为null。因此,当我尝试从控制器中的服务集合中获取Toastnotification实例时,它始终为null。

这就是我使用依赖注入

获取Toastnotification的方法
[FromServices]
private IToastNotification ToastNotification { get; set; }

我做错了什么?

2 个答案:

答案 0 :(得分:3)

不要使用属性注入,它已被删除,并且在以后的版本中无法使用:https://github.com/aspnet/Announcements/issues/115

相反,请考虑使用构造函数依赖注入。

答案 1 :(得分:0)

使用构造函数依赖注入,您可以执行以下操作:

// Register your service.
services.AddInstance<IToastNotification>(new ToastNotification());

在你的控制器中:

public class HomeController : Controller
{
    private readonly IToastNotification _toastNotification;

    public HomeController(IToastNotification toastNotification)
    {
        _toastNotification = toastNotification;
    }

    ...
}