在我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