ASP.NET 核心 1 依赖项注入:实现类型始终为 null
本文关键字:类型 实现 null 注入 核心 NET 依赖 ASP | 更新日期: 2023-09-27 18:32:57
我在Startup
类的ConfigureServices
方法中有以下内容。我正在添加ToastNotification
的单例实例,它是IToastNotification
的实现。
public void ConfigureServices(IServiceCollection services)
{
services.AddInstance<IToastNotification>(new ToastNotification()
{
});
}
问题是,当我在此方法结束时调试时观察服务的值时,IToastNotification
服务的实现类型是null
。因此,当我尝试从控制器中的服务集合中获取 Toastnotification 实例时,它始终为 null。
这就是我使用依赖注入获得Toastnotification
的方式
[FromServices]
private IToastNotification ToastNotification { get; set; }
我做错了什么?
不要使用属性注入,它已被删除,在未来版本中不起作用:https://github.com/aspnet/Announcements/issues/115。
相反,请考虑使用构造函数依赖项注入。
使用构造函数依赖注入,您可以执行以下操作:
// Register your service.
services.AddInstance<IToastNotification>(new ToastNotification());
在您的控制器中:
public class HomeController : Controller
{
private readonly IToastNotification _toastNotification;
public HomeController(IToastNotification toastNotification)
{
_toastNotification = toastNotification;
}
...
}