2012-06-22 6 views
1

Я использую Ninject в моем ASP MVC 3 проекта, я изменил файл global.asax (как обычно делается), а затем создал класс NinjectControllerFactory так:ASP MVC Entity Framework связывание с использованием Ninject

public class NinjectControllerFactory : DefaultControllerFactory 
    { 
     private IKernel ninjectKernel; 
     public NinjectControllerFactory() 
     { 
      ninjectKernel = new StandardKernel(); 
      AddBindings(); 
     }  
     protected override IController GetControllerInstance(RequestContext requestContext, 
     Type controllerType) 
     { 
      return controllerType == null 
      ? null 
      : (IController)ninjectKernel.Get(controllerType); 
     } 
     private void AddBindings() 
     { 
      // put additional bindings here 
      ninjectKernel.Bind<IServiceName>().To<ConcreteClass>(); 
     } 
    } 

Все это прекрасно работает.

Теперь я хочу добавить свой объект контекста инфраструктуры Entity к привязке, так что мне не нужно создавать новый экземпляр для каждой службы.

Может ли кто-нибудь сказать, как это сделать?

Должен ли я создать новый интерфейс, который просто определяет контекст инфраструктуры Entity?

Благодаря

ответ

2

Вы можете использовать самостоятельно связывании

kernel.Bind<MyDbContext>().ToSelf(); 

P.S Вы должны также проверить выход Ninject.MVC3 package на NuGet

+0

Благодаря Арчил, я попробую это в ближайшее время. – gunnerz

Смежные вопросы