具有会话时间跨度的单例类对于每个浏览客户端.NET CORE

问题描述

我正在尝试创建单例类,但仅用于会话。 所以我想为每个进入网站的用户创建一个实例(用于 JMS 服务器)。因此 - 当会话关闭时,我必须从库中调用关闭连接。

所以:

  1. 如何为每个会话创建一个类?
  2. 如何捕获会话未处于非活动状态的事件并调用某些方法

尝试使用 AddSingleton/AddTransient/AddScoped,但可能它不适合这项工作(或者我使用错误)。

解释更多 - “商业案例”是 Web 应用程序,用户可以在其中检查 JMS 服务器上队列中的消息。用户在欢迎页面登录)上输入连接参数 - 因此,当有人使用应用程序(并连接到某个 JMS 服务器)时,另一个用户可以进入页面 - 请参阅登录,另一个用户创建自己的连接到另一个 JMS 服务器。

解决方法

如果您确定每个会话都需要它们,您可以考虑使用以下方法在会话创建时创建实例:

_myClass = serviceProvider
          .GetRequiredService<IMyInterface>();