在我NinjectControllerFactory我有这样的结合:使用不同范围的同一结合
private void AddBindings()
{
ninjectKernel.Bind<IUnitOfWork>().To<UnitOfWork>().InRequestScope();
}
而且它可以很好地用于请求控制器,工作只有一个单元被实例化。
但是,当我将UnitOfWork注入到SignalR Hub类时,问题是SignalR中的所有方法调用都在相同的请求范围内,并且在用户连接时始终使用同一个UnitOfWork实例。
所以,我想要使用像这样的东西:ninjectKernel.Bind<IUnitOfWork>().To<UnitOfWork>().InScope(ctx => MyHubClass);
所以它得到处置每一次。
但我可以以某种方式使用此绑定仅用于注入到HubClass,而第一个用于所有其他请求?
有可能使用自定义范围,请参阅https://github.com/ninject/ninject/wiki/Object-Scopes – Diginari