我刚刚开始使用IoC容器,因此选择了Ninject。经过几个小时的汗水和泪水,我仍然无法弄清楚如何使用Ninject设置我的MVC3应用程序。到目前为止我有:全局.asax.cspublicclassMvcApplication:Ninject.Web.Mvc.NinjectHttpApplication{publicstaticvoidRegisterGlobalFilters(GlobalFilterCollectionfilters){filters.Add(newHandleErrorAttribute());}publicstaticvoidRegisterRoutes(Ro
问题:有没有办法使用Ninject将依赖项注入(inject)我的MVC模型?首先,我是MVC和DI(以及stackoverflow,顺便说一句)的新手,所以我想确保我在解决这个问题时走上了正确的道路。几天来我一直在谷歌上搜索答案,但找不到清晰的解释...我使用的是C#、.NET4、MVC3、Ninject和VS2010。场景如下:我有一个新的用户表单,用户可以在其中设置他们的登录名、角色和其他配置文件数据。提交后,我需要将登录信息保存到MembershipProvider,将角色保存到RoleProvider等......它变得有点毛茸茸,因为我根据我的项目要求使用双供应商(Acti
我遇到了Ninject的问题,这是我以前从未见过的,也不知道如何解决。我正在为MVC5使用MVCNuGet包。在我的NinjectWebCommon.cs中,有如下方法:publicstaticvoidStart(){DynamicModuleUtility.RegisterModule(typeof(OnePerRequestHttpModule));DynamicModuleUtility.RegisterModule(typeof(NinjectHttpModule));bootstrapper.Initialize(CreateKernel);}然而,它在尝试执行最后一行时失败
我试图在我的服务类中遵循RAII模式,这意味着当一个对象被构建时,它就被完全初始化了。但是,我在使用异步API时遇到了困难。相关类的结构如下所示classServiceProvider:IServiceProvider//Isonlyusedthroughthisinterface{publicintImportantValue{get;set;}publiceventEventHandlerImportantValueUpdated;publicServiceProvider(IDependency1dep1,IDependency2dep2){//IDependency1provi
我对IoC框架很陌生,所以请原谅我的术语。所以我拥有的是一个带有NininjectMVC引用的MVC项目。我的项目中还有其他类库,例如域层,我希望能够在那里使用Ninject框架,但我的所有绑定(bind)都在MVC项目的App_Start文件夹下的NinjectWebCommon.cs中:privatestaticvoidRegisterServices(IKernelkernel){kernel.Bind().To();kernel.Bind().To();}目前在我的类库中,我正在使用构造函数注入(inject),但有时我不得不对依赖项进行硬编码:varservice=newWi
当我有一个没有默认构造函数的类时,即使用依赖注入(inject)来传递其依赖项时,Newtonsoft.Json可以创建这样的对象吗?例如:publicclassSomeFoo{privatereadonlyIFooDependency_dependency;publicSomeFoo(IFooDependencydependency){if(dependency==null)thrownewArgumentNullException("dependency");_dependency=dependency;}publicstringData{get;set;}publicintMor
我有一个带有此主窗体的WinForms应用程序:ICountRepositorycountRepository;publicMainForm(ICountRepositorycountRepository){this.countRepository=countRepository;}publicvoidIncrementCount(){countRepository.IncrementCount();}但我正在努力将ICountRepository注入(inject)主窗体。我该怎么做? 最佳答案 好吧,第一步是从:varform=
我正在VisualStudio2017版本15.4上开发MVC5项目。我在这里得到了意想不到的结果,这是我以前从未遇到过的。我已经从nuget安装了Ninject.MVC5包。它安装得很好,没有给出任何错误或警告。但问题是它没有在App_Start文件夹中生成NinjectWebCommon.cs文件。有什么理由吗? 最佳答案 看起来最新的Ninject.Web.Common.WebHost3.3.0NuGet包不再包含NinjectWebCommon.cs。旧版本(例如3.2.0)确实包含此文件。Ninject.Web.Commo
如果我使用这样的工厂接口publicinterfaceIBoredFactory{IBoredCreate()}在装订中这样做kernel.Bind().ToFactory();kernel.Bind().To();它正如预期的那样工作,代码返回打哈欠但是,如果我将工厂界面更改为此publicinterfaceIBoredFactory{TaskCreate()}工厂代理将建造,但线程永远不会从Create(),呼叫者无休止地等待着。我在这里错过了什么吗?看答案正如@andreasAppelros所建议的Ninject正在返回未完成的Task.由于实际上没有异步ninjectapi,即使在创建
尝试使用Ninject的工厂扩展程序来做到这一点。voidMain(){IKernelkernel=newStandardKernel();kernel.Bind().ToMethod(ctx=>newC());kernel.Bind().ToFactory();vara=kernel.Get();a.Do();}publicclassA{IBFactory_fact;publicA(IBFactoryfactory){_fact=factory;}publicvoidDo(){_fact.Get("blah").Dump();}}publicclassB{publicB(Cc,strings