提前抱歉这个长问题,它很长是因为我整天都在挖掘这个问题。一般问题:我有一个包含以下项目的ASP.NetMVC2应用程序:MyApp.Web、MyApp.Services、MyApp.Data。我们对接口(interface)进行编码并将Ninject2用于DI/IoC。但是,我非常厌倦了打字(并且忘记打字):Bind.To;因此,在了解Ninject.Extensions.Convensions后,我尝试使用它来自动扫描和注册IXxxx=>Xxxx类型的模块和简单依赖项。我尝试过的方法有效(但还不够):我可以使用以下代码来设置Ninject,一切似乎都按预期进行了连接。publicst
我是Ninject的新手,在开始实现通用存储库模式时发现自己遇到了麻烦。我想将依赖项IRepository绑定(bind)到类ConcreteRepository,其中ConcreteRepository实现IRepository,EntityType实现IEntityType。我试过这个:kernel.Bind>().To>();...但Ninject不会接受它,因为它不知道或不关心EntityType实现了IEntityType。我怎样才能绑定(bind)这个依赖项?更新这是我遇到的错误:Error3Thetype'ICM.Dependency.Repository.Concret
我有一个ASP.NETMVC应用程序,我刚刚开始在其中使用ServiceStack的Redis客户端。我使用Ninject作为我的IoC容器。目前我的绑定(bind)看起来像这样:Bind().ToMethod(c=>newBasicRedisClientManager("localhost:6379")).InSingletonScope();Bind().ToMethod(c=>c.Kernel.Get().GetCacheClient());Bind().ToMethod(c=>c.Kernel.Get().GetClient());我在应用程序启动时有效地创建了一个BasicR
我正在从IISWebAPI迁移到OwinHost。利用最新的预发布版本的nuget包,我成功地使用了这里的说明:https://github.com/ninject/Ninject.Web.Common/wiki/Setting-up-a-OWIN-WebApi-application这是我的代码stub:publicvoidConfiguration(IAppBuilderapp){varconfig=newHttpConfiguration();config.MapHttpAttributeRoutes();app.UseNinjectMiddleware(CreateKernel
我有一个使用Ninject的MVC5应用程序,我正在向它添加Hangfire。当我添加Ninject时,我使用了NinjectWebCommonnuget包,因为它的配置很简单。所以现在Ninject通过创建标准内核并添加绑定(bind)的NinjectWebCommon类进行配置。此外,我创建了一些在创建内核时加载的自定义模块privatestaticIKernelCreateKernel(){varkernel=newStandardKernel(newMyCustomModule());try{kernel.Bind>().ToMethod(ctx=>()=>newBootstr
我有一个带有几个不同具体实现的接口(interface)。我正在尝试为Ninject提供默认使用,并且仅在名称匹配时才使用其他实现。例如,我有以下绑定(bind)。Bind().To()Bind().To().Named("55abd8b8-097f-4e1c-8d32-95cc97910604");我想要的是,如果命名部分不匹配,则使用DefaultSomething实现。当我传入显式绑定(bind)的guid时,它工作正常。当我传入任何其他guid时,我得到“没有可用的匹配绑定(bind)”异常。Bind().To().Named("55abd8b8-097f-4e1c-8d32-
关于如何使用Ninject在ASP.NETMVC3中的ActionFilter上进行属性注入(inject),我发现了大量不确定的文章和问题。谁能给我一个明确的例子吗?这是我的自定义身份验证属性。publicclassCustomAuthorizeAttribute:AuthorizeAttribute{[Inject]publicIServiceService{get;set;}[Inject]publicIAuthenticationHelperAuthenticationHelper{get;set;}publicoverridevoidOnAuthorization(Autho
我正在使用Ninject从内核中检索我的DataContext,我想知道Ninject是否会自动处理DataContext,或者他如何处理dispose()行为。根据我自己的经验,我知道处理数据上下文非常重要,无论何时创建DataContext的直接对象(如:newDataContext()),都应该使用using()block。因此我的问题是:当我从内核中检索我的DataContext时,我是否仍然必须使用using()block?或者Ninject会帮我解决这个问题吗? 最佳答案 我正在为我的同事Bas调查此事。我正在查看Nin
目前正在编写API站点(.NETWebApi2.1)对于我们之前的API站点,我们使用了Ninject.MVC3包并手动连接依赖项解析器和范围,并按照建议将我们的逻辑插入到NinjectWebCommon中。这导致我们的新项目因无参数构造函数错误而心烦意乱。过去,我们没有正确连接WebApi中的依赖项解析器,这是一个致命的泄露。只有这一次,我们是。它在那里。varresolver=newNinjectDependencyResolver(kernel);GlobalConfiguration.Configuration.DependencyResolver=resolver;所以我有点
如果我有以下代码:publicclassRobotNavigationService:IRobotNavigationService{publicRobotNavigationService(IRobotFactoryrobotFactory){//...}}publicclassRobotFactory:IRobotFactory{publicIRobotCreate(stringnameOfRobot){if(name=="Maximilian"){returnnewKillerRobot();}else{returnnewStandardRobot();}}}我的问题是在这里进行