Signalr hub singleton中的依赖注入

时间:2015-10-30 10:13:33

标签: c# asp.net .net signalr ninject

我使用Ninject进行依赖注入,我有类似的东西:

    private IUnitOfWork unitOfWork;

    public ChatHub(IUnitOfWork unitOfWork)
    {
        this.unitOfWork = unitOfWork;
    }

但问题是Hub是一个单例,UnitOfWork的创建只执行一次,这意味着我一直使用相同的UnitOfWork对象。它不像每次请求时创建的控制器,因此UnitOfWork的范围也是按照请求。

我的问题是我是否可以设置unitOfWork实例化并处理每个请求到Hub,尽管Hub是单身?

1 个答案:

答案 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
}