Signalr集线器单例中的依赖项注入
本文关键字:注入 依赖 集线器 单例中 Signalr | 更新日期: 2023-09-27 18:19:56
我使用Ninject进行依赖项注入,我有这样的东西:
private IUnitOfWork unitOfWork;
public ChatHub(IUnitOfWork unitOfWork)
{
this.unitOfWork = unitOfWork;
}
但问题是Hub是一个单例,UnitOfWork的创建只完成一次,这意味着我一直使用相同的UnitOfWork对象。这与每次请求时创建的控制器不同,因此UnitOfWork的范围也是每个请求。
我的问题是,尽管Hub是singleton,但我是否可以设置unitOfWork被实例化并为Hub的每个reqesut进行处理?
您可以尝试:
public interface IUnitOfWorkFactory
{
IUnitOfWork Create();
}
public class UnitOfWorkFactory : IUnitOfWorkFactory
{
public IUnitOfWork Create()
{
// creation of the unit of work
return new UnitOfWork();
}
}
在您的集线器中:
using (var unitOfWork = this.unitOfWorkFactory.Create())
{
// use it here
// i'm assuming that your unit of work implements IDisposable
}