我使用Ninject进行依赖注入,我有类似的东西:
private IUnitOfWork unitOfWork;
public ChatHub(IUnitOfWork unitOfWork)
{
this.unitOfWork = unitOfWork;
}
但问题是Hub是一个单例,UnitOfWork的创建只执行一次,这意味着我一直使用相同的UnitOfWork对象。它不像每次请求时创建的控制器,因此UnitOfWork的范围也是按照请求。
我的问题是我是否可以设置unitOfWork实例化并处理每个请求到Hub,尽管Hub是单身?
答案 0 :(得分:0)
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
}