Tag: ninject

Ninject.MVC5没有生成NinjectWebCommon.Cs

我正在Visual Studio 2017版本15.4上开发一个MVC5项目。 我在这里得到了意想不到的结果,这是我以前从未遇到的。 我从nuget安装了Ninject.MVC5软件包。 它安装得很好,没有任何错误或警告。 但问题是它没有在App_Start文件夹中生成NinjectWebCommon.cs文件。 有什么缘故吗?

Ninject WithConstructorArgument:没有匹配的绑定可用,并且该类型不可自绑定

我对WithConstructorArgument的理解可能是错误的,因为以下内容不起作用: 我有一个服务,让我们称之为MyService,其构造函数采用多个对象,以及一个名为testEmail的字符串参数。 对于此字符串参数,我添加了以下Ninject绑定: string testEmail = “test@example.com”; kernel.Bind().To().WithConstructorArgument(“testEmail”, testEmail); 但是,在执行以下代码行时,我得到一个exception: var myService = kernel.Get(); 这是我得到的例外: 激活字符串时出错没有匹配的绑定可用,并且该类型不可自我绑定。 激活路径: 2)将依赖字符串注入到MyService类型的构造函数的参数testEmail中 1)请求MyService 建议: 1)确保已为字符串定义了绑定。 2)如果在模块中定义了绑定,请确保已将模块加载到内核中。 3)确保您没有意外创建多个内核。 4)如果使用构造函数参数,请确保参数名称与构造函数参数名称匹配。 5)如果使用自动模块加载,请确保搜索路径和filter正确无误。 我在这做错了什么? 更新 : 这是MyService构造函数: [Ninject.Inject] public MyService(IMyRepository myRepository, IMyEventService myEventService, IUnitOfWork unitOfWork, ILoggingService log, IEmailService emailService, IConfigurationManager config, HttpContextBase httpContext, string testEmail) { this.myRepository = myRepository; this.myEventService = myEventService; this.unitOfWork […]

使用NLog的Ninject记录器

我刚开始学习Ninject但是遇到了记录器的问题。 我目前有一个控制器,它有一个服务和记录器注入到构造函数中,如下所示: public ToolsController(IToolsService toolsService, ILogger logger) { logger.Info(“ToolsController Created”); this.toolsService = toolsService; this.logger = logger; } 问题出在构造函数中的logger.Info行(例如),它似乎使用了错误的记录器,因此它打印出的记录器名称不正确。 Tools.IGeocodeImporter: ToolsController Created 以下是如何设置获取记录器名称: kernel.Bind().To().WithConstructorArgument(“name”, x => x.Request.ParentContext.Request.Service.FullName); 任何意见,将不胜感激。

将Ninject与Windows服务一起使用

使用Ninject和Windows服务的任何好例子? 我不确定我需要什么扩展。 另外,不确定作文根应该是什么? 在那里使用Ninject与Windows服务的任何好例子?

使用Ninject的参数化工厂

如何使Ninject在运行时基于变量实例化对象? 我试图在控制器动作中注入正确的存储库 – MVC 3 – 基于来自用户输入的参数。 如果用户输入“BMW”,它会将ICarRepository绑定到BMWRepository ,如果输入“KIA”,则会注入KiaRepository 。 [HttpPost] public ActionResult SearchResult(FormCollection values) { string carModel = values[“model”]; ICarRepository myRepository = RepositoryFactory.getRepository(carModel); ….. } 这是通过switch / case noob instantiation或Parameterized Factories已知的,我知道如何在没有Ninject的情况下手动完成,请查看此处介绍的4种方法探索工厂模式 我的问题是如何用Ninject做到这一点?

子属性的选择性validation – MVC中的流畅validation

我正在使用Fluent Validation与Ninject.Web.Mvc.FluentValidation库自动连接所有validation器(并使用dependency injection来创建validation器)。 我创建了以下模型: public class Parent { public string Name { get; set; } public Child Child1 { get; set; } public Child Child2 { get; set; } } public class Child { public string ChildProperty { get; set; } } 使用以下validation器: public class ParentValidator : AbstractValidator { public ParentValidator() { RuleFor(model => model.Name).NotEmpty(); […]

使用NInject在WPF中注入没有无参数构造函数的viewmodel类

我正在使用NInject来解析我的第一个WPF应用程序的依赖项。 以下是我的代码片段。 我的App.xaml.cs就像。 public partial class App : Application { private IKernel container; protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); ConfigureContainer(); ComposeObjects(); } private void ComposeObjects() { Current.MainWindow = this.container.Get(); } private void ConfigureContainer() { this.container = new StandardKernel(); container.Bind().To(); } } App.xaml是这样的。 MainWindow.xaml。 MainWindow.xaml.cs public partial class MainWindow : Window { public MainWindow() { […]

如何在ASP.NET MVC Web App中使用Ninject?

我已经创建了一个新的MVC Web应用程序,并且我引用了Ninject.dll,Ninject.Web.Common.dll和Ninject.Web.MVC.dll。 的Global.asax.cs: public class MvcApplication : NinjectHttpApplication { public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HandleErrorAttribute()); } public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”); routes.MapRoute( “Default”, // Route name “{controller}/{action}/{id}”, // URL with parameters new { controller = “Home”, action = “Index”, id = UrlParameter.Optional }); } protected override IKernel CreateKernel() { var kernel […]

Singleton中的entity framework上下文

我正在构建一个在单例模式中使用EF的上下文的应用程序,如NHibernate使用Session: public class DbContextFactory { private static volatile DbContextFactory _dbContextFactory; private static readonly object SyncRoot = new Object(); public DbContext Context; public static DbContextFactory Instance { get { if (_dbContextFactory == null) { lock (SyncRoot) { if (_dbContextFactory == null) _dbContextFactory = new DbContextFactory(); } } return _dbContextFactory; } } public DbContext GetOrCreateContext() { if […]

C#,Ninject:你把内核和模块放在哪里?

我正在创建一个小型的C#应用​​程序,它目前包含一个核心程序集和一个winforms程序集。 我意识到我可能并不真的需要Ninject这样的小东西,但我想尝试一下。 无论如何,与Ninject一起工作我已经明白你会写一组模块,其中返回map类,等等。 之后,您将创建一个IKernel实例并将模块加载到该实例中。 但是,我在哪里保留这些模块? 我在哪里保留内核? 东西去哪了?