我正在使用自托管方法创建一个具有ASP.NETWebAPI接口(interface)的应用程序。我想使用类似于MVC3提供的InRequestScope()的范围。当我在IIS上托管WebAPI应用程序时,这似乎受到Ninject.Extension.WebAPI的支持。但是,当自托管WebAPI时,我会在创建绑定(bind)InRequestScope()时获得一个新实例。当我自行托管WebAPI时,有什么方法可以使用此范围? 最佳答案 您可以使用NamedScope扩展来定义Controller定义范围并将该范围用于请求范围内的
我在部署在appharbor上的MVC3项目上使用Ninject。我注意到当应用程序启动时出现异常,看起来Ninject内部的某些东西是原因,但我找不到任何答案-所以请帮助我:)将尝试在此处添加完整的异常:ServerErrorin'/'Application.Objectreferencenotsettoaninstanceofanobject.Description:Anunhandledexceptionoccurredduringtheexecutionofthecurrentwebrequest.Pleasereviewthestacktraceformoreinformat
按照我在这个帖子中得到的建议[NinjectUOWpattern,newConnectionStringafteruserisauthenticated我现在明白我不应该使用以下行...varapplicationConfiguration=(IApplicationConfiguration)DependencyResolver.Current.GetService(typeof(IApplicationConfiguration));...作为服务定位器是一种反模式。但在以下过程中,我如何实例化实现“IApplicationConfiguration”的具体对象,以便我可以使用该对
我使用了NuGetNinjectMVC3扩展,但无法根据请求将其注入(inject)Controller。它似乎没有绑定(bind),因为MVC正在寻找无参数构造函数。这是堆栈跟踪:[MissingMethodException:Noparameterlessconstructordefinedforthisobject.]System.RuntimeTypeHandle.CreateInstance(RuntimeTypetype,BooleanpublicOnly,BooleannoCheck,Boolean&canBeCached,RuntimeMethodHandleInter
我刚开始学习Ninject,但遇到了记录器的问题。我目前有一个Controller,它有一个服务和记录器注入(inject)到构造函数中,如下所示:publicToolsController(IToolsServicetoolsService,ILoggerlogger){logger.Info("ToolsControllerCreated");this.toolsService=toolsService;this.logger=logger;}问题出在构造函数中的logger.Info行(例如),它似乎使用了错误的记录器,因此它打印出的记录器名称不正确。Tools.IGeocode
使用Ninject,您如何配置内核以便我可以定义将哪些构造函数值传递到对象的实例化?我在模块中配置了以下内容:Bind().To().InSingletonScope().Named("LIVE");Bind().To().InSingletonScope().Named("LIVE").WithConstructorArgument("service1",Kernel.Get("LIVE"));Service2Impl采用IService1的构造函数参数,但我希望它来自容器。我还想命名绑定(bind),因为我的代码将在运行时针对不同的版本。这似乎可行,但这是实现我想做的事情的正确方法
我正在将一个大型代码库从Ninject迁移到Autofac,并且正在努力处理其中一个绑定(bind)(根据我的一些调试,我认为这会导致激活错误)。注入(inject):Bind>().ToMethod(context=>{varowinContext=context.Kernel.Get();returnowinContext.Get>("SecureDataFormat");});Autofac(我有什么):builder.Register(context=>context.Resolve().Get>("SecureDataFormat")).As>();启动.cs:varcont
我需要更多帮助才能“了解”像Ninject这样的DI框架如何超越基础知识。以Ninject为例:classSamurai{privateIWeapon_weapon;[Inject]publicSamurai(IWeaponweapon){_weapon=weapon;}publicvoidAttack(stringtarget){_weapon.Hit(target);}}如果没有DI框架(即上面的[Inject]引用),引用类将类似于:classProgram{publicstaticvoidMain(){Samuraiwarrior1=newSamurai(newShuriken
我打算使用Ninject作为IoC容器,但无法理解如何创建在构造函数中具有多个参数的类的实例。基本上我在PCL库中有一个用于身份验证的服务接口(interface)及其在WP8项目中的实现,该项目在构造函数中接收消费者key、secret和baseAddress://OnPCLprojectpublicinterfaceIAuthorizationService{boolAuthenticate();}//OnWP8ProjectpubilcclassMyAuthenticator:IAuthorizationService{publicMyAuthenticator(stringco
我有一个IConfig包含整个应用程序中使用的设置的对象。目前,我将整个对象注入(inject)到每个需要它的对象的构造函数中,如下所示:publicinterfaceIConfig{stringUsername{get;}stringPassword{get;}//...othersettings}publicclassFoo:IFoo{privatereadonlystringusername;privatereadonlystringpassword;publicFoo(IConfigconfig){this.username=config.Username;this.passw