我在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; }
我做错了什么?
答案 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;
}
...
}