如何从 StartSession StartSession 方法访问另一个单例服务?
How do access another singletone service from IStartSession StartSession method?
我使用 问题已接受答案来劫持会话开始。
但是 - 当我拦截新的会话启动时,我无法访问其他全局服务,其中包含我在每次会话启动和用户请求时所需的数据。
在旧的 ASP.NET MVC 5 项目中,我在 Application_AcquireRequestState 事件的 Global.asax 完成了所有工作。
我需要访问我在 Startup.cs
中的 ConfigureServices 添加的服务
services.AddSingleton<LocalisedResources>(
sp => new LocalisedResources(Configuration.GetConnectionString("DefaultConnection")));
我错过了什么?
事实证明 - 与会话无关。
在 post 中找到了答案,而且很简单。
添加InistSession服务时需要添加Required服务
services
.AddSingleton<IStartSession, InitSession>(serviceProvider =>
new InitSession(serviceProvider.GetRequiredService<LocalisedResources>()));
我使用
但是 - 当我拦截新的会话启动时,我无法访问其他全局服务,其中包含我在每次会话启动和用户请求时所需的数据。
在旧的 ASP.NET MVC 5 项目中,我在 Application_AcquireRequestState 事件的 Global.asax 完成了所有工作。
我需要访问我在 Startup.cs
中的 ConfigureServices 添加的服务 services.AddSingleton<LocalisedResources>(
sp => new LocalisedResources(Configuration.GetConnectionString("DefaultConnection")));
我错过了什么?
事实证明 - 与会话无关。
在
添加InistSession服务时需要添加Required服务
services
.AddSingleton<IStartSession, InitSession>(serviceProvider =>
new InitSession(serviceProvider.GetRequiredService<LocalisedResources>()));