我是.Net核心新手,我试图将ApplicationDBContext
注入服务层,但它不起作用。
以下是服务配置(ConfigureServices
):
services.AddSingleton<IApplicationEventService, ApplicationEventService>();
services.AddScoped<ILoginHistoryService, LoginHistoryService>();
services.AddScoped<IApplicationEventHandler<UserLogedInEvent>, HandleUserLogedIn>();
LoginHistoryService
的构造函数:
public LoginHistoryService(ApplicationDbContext context)
{
_Context = context;
}
当用户登录时,AccountController
提出应用程序事件:
await _eventService.Raise<UserLogedInEvent>(new UserLogedInEvent(user, DateTime.UtcNow));
但是当ApplicationEventService尝试解析所需的事件处理程序时会抛出一个excpetion:
var allInstance = _ServiceProvider.GetServices<IApplicationEventHandler<T>>();
,错误信息为:
无法解析&#39; System.Collections.Generic.IEnumerable`1 [App.Interfaces.IApplicationEventHandler`1 [App.Web.Infrastructure.Events.UserLogedInEvent]]&#39; 来自root提供程序,因为它需要作用域服务 &#39; App.Interfaces.IApplicationEventHandler`1 [App.Web.Infrastructure.Events.UserLogedInEvent]&#39;
请提供帮助和建议。