Tag: ninject

WebApi自定义filter与构造函数中的注入接口不会被调用

我的问题陈述与此问题相同,即在属性/filter中使用注入服务。 我已经尝试过BZ给出的解决方案,以下是我给出的解决方案的代码。 //marker attribute public class AuthorizeViewAttribute : Attribute { } //filter public class AuthorizeViewFilter : IAuthorizationFilter { private readonly IAccessRightsService _iAccessRightService; public AuthorizeViewFilter(IAccessRightsService iAccessRightService) { _iAccessRightService = iAccessRightService; } public void OnAuthorization(AuthorizationContext filterContext) { RoleFeature roleFeature = _iAccessRightService.GetRoleFeatures(); if (roleFeature.IsView) { //redirect to controller } } } 以下是我使用的ninject绑定: this.BindFilter(System.Web.Mvc.FilterScope.Controller, 0) .WhenControllerHas(); 我不需要属性中的任何参数,所以我想我不需要使用这个答案中提到的WithConstructorArgument 但我的filter永远不会被调用。 我在AuthorizeViewAttribute中放置了一个默认构造函数,调试后发现控件跳转到AuthorizeViewAttribute中的默认构造函数并继续使用控制器方法。 […]

Ninject UserManager和UserStore

使用ninject将UserManager和UserStore注入控制器的最优雅方法是什么? 例如,可以像这样注入上下文: kernel.Bind().ToSelf().InRequestScope(); public class EmployeeController : Controller { private EmployeeContext _context; public EmployeeController(EmployeeContext context) { _context = context; } ninject可以用一行代码将UserManager和UserStore注入控制器吗?! 如果没有,最简单的方法是什么? 我不想用这个: var manager = new UserManager(new UserStore(new ApplicationDbContext())); 先感谢您。

如何解决ASP.NET中全局文件中的Ninject依赖项?

我正在使用带有Web表单应用程序的Ninject和Ninject.Web程序集。 在global.asax文件中,我指定绑定,如下所示: public class Global : NinjectHttpApplication { protected override IKernel CreateKernel() { IKernel kernel = new StandardKernel(); // Vendor Briefs. kernel.Bind().To().InRequestScope(); kernel.Bind().To().InRequestScope(); // Search Services. kernel.Bind().To().InRequestScope(); kernel.Bind().To().InRequestScope(); // Error Logging kernel.Bind().To().InRequestScope(); kernel.Bind().To().InRequestScope(); return kernel; } } 然后在我的页面中,我只需要让它们inheritance自Ninject.Web.PageBase 。 然后我可以在页面后面的代码上设置属性并将[inject]属性放在它上面。 [inject] public IVendorBriefController vendorBriefController { get; set; } 这很好用。 但是现在我需要在Global.asax文件本身中进行一些dependency injection。 我在Application_Error事件中需要一个IErrorLogEntryController实例。 如何解决此问题并将我指定的绑定用于抽象类型? protected void […]

Ninject和XML配置绑定

我一直在互联网上搜索任何样本或获取如何使用XML扩展与Ninject绑定的开始文章,但我找不到任何帮助! , 任何机构都能为我提供一个非常小的样本,我该怎么做? 提前致谢

Ninject:按类型_and_注册名称/标识符解析对象

我正在寻找一种方法来使用Ninject做这样的事情: // Sample from the Unity application block IMyService result = myContainer.Resolve(“Data”); (来自http://msdn.microsoft.com/en-us/library/cc440957.aspx ) 可能吗?

将Nininject MVC与类库一起使用

我对IoC框架很陌生,所以请原谅这个术语。 所以我所拥有的是一个带有Nininject MVC参考的MVC项目。 我的项目中有其他类libarys,例如Domain层,我希望能够在那里使用Ninject框架,但我的所有绑定都在MVC项目的App_Start文件夹下的App_Start中: private static void RegisterServices(IKernel kernel) { kernel.Bind().To(); kernel.Bind().To(); } 目前在我的类库中我使用构造函数注入,但有时我不得不对依赖项进行硬编码: var service = new WindowsHardwareService(); 当我希望能够做到以下几点: IKernel kernel = new StandardKernel(…..); var context = kernel.Get(); 我没有做以下因为我没有任何模块? 我读过的所有文档主要针对的是常规Ninject库而不是MVC版本。 我需要做什么,以及如何将常规Ninject库与MVC版本一起使用? 更新 这是我尝试过的: 这样做的目的是使每个项目都可以加载模块并获得当前注入的接口。 App_Start / NinjectWebCommon.cs (在MVC项目中) private static void RegisterServices(IKernel kernel) { var modules = new IoCModules(); var newKernal = modules.GetKernel(); kernel […]

使用ninject的WinForms对话框的最佳实践是什么?

我尝试用Ninject创建应用程序。 我有一个MainForm和对话框表单进行设置。 我应该如何实现这个? MainForm应该有一个Kernel实例,然后使用Get()方法创建SettingsForm吗? 或者MainForm构造函数应该具有SettingsForm实例的参数? 我尝试用ninject找到一些WinForm应用程序的例子,但我发现只有一些ASP.NET应用程序在Visual C#2008 express中没用。

需要帮助了解Ninject如何将Nhibernate SessionFactory实例添加到UnitOfWork中?

因此,使用教程中的一些帮助,我已经设法使用Ninject将Nhibernate会话连接到我的存储库和我的存储库到我的控制器。 然而,有一个设置,我没有理解Ninject正在做的“自动化”,并希望有人可以解释。 下面是我的Ninject ModuleRepository ,它inheritance自NinjectModule,它执行所有绑定。 public class ModuleRepository : NinjectModule { public override void Load() { var helper = new NHibernateHelper(ConfigurationManager.ConnectionStrings[Environment.MachineName].ConnectionString); Bind().ToConstant(helper.SessionFactory) .InSingletonScope(); Bind().To() .InRequestScope(); Bind().ToProvider() .InRequestScope(); Bind<IRepository>().To(); Bind<IRepository>().To(); } } 这是UnitOfWork类 : public class UnitOfWork : IUnitOfWork { private readonly ISessionFactory _sessionFactory; private readonly ITransaction _transaction; public ISession Session { get; private set; } […]

哪个是测试Ninject绑定的好方法?

我们在所有项目中使用ninject,正如您所知,有时候很难测试内核是否能够在执行时解析每个类型,因为有时控件会在绑定和自动绑定的大小时丢失(通过ninject扩展) ) 高。 所以,我在这里要问的是,如何在加载所有模块和绑定后,我的内核能够解析每种类型? 你做过任何unit testing吗? 或者您只是在执行时对应用程序进行接受测试? 任何建议都会很棒:)

MVC5 Ninject绑定和HttpContext

我正在尝试建立一个新项目,并且我添加了一个新类MembershipService ,它需要在它的构造函数中传递HttpContext 。 在之前的项目中,我使用了代码 private static void RegisterServices(IKernel kernel) { kernel.Bind() .To() .InRequestScope() .WithConstructorArgument(“context”, HttpContext.Current); …. } 然而,在新项目中,我正在使用Ninject Modules,在对StackOverflow和Google进行一些搜索之后,我提出了以下代码:public class ServiceHandlerModule:NinjectModule { public override void Load() { Bind() .To() .WithConstructorArgument(“context”, ninjectContext=> HttpContext.Current); this.Kernel.Bind(x => { x.FromAssemblyContaining(typeof(NinjectWebCommon)) .SelectAllClasses() .Where(t => t != typeof(MembershipService)) .BindDefaultInterface(); }); this.Kernel.Bind(x => { x.FromAssemblyContaining() .SelectAllClasses() .Where(t => t != typeof(MembershipService)) .BindDefaultInterface(); […]