1

我在我的 ASP MVC 3 项目中使用 Ninject,我修改了 global.asax 文件(像往常一样),然后像这样创建了一个类 NinjectControllerFactory:

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 框架上下文对象添加到绑定中,这样我就不必为每个服务创建它的新实例。

谁能告诉怎么做?

我应该创建一个只定义实体框架上下文的新接口吗?

谢谢

4

1 回答 1

3

你可以使用自绑定

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

PS你还应该在nuget上签出Ninject.MVC3包

于 2012-06-22T10:51:00.077 回答