草庐IT

c# - Ninject 和 DataContext 处置

我正在使用Ninject从内核中检索我的DataContext,我想知道Ninject是否会自动处理DataContext,或者他如何处理dispose()行为。根据我自己的经验,我知道处理数据上下文非常重要,无论何时创建DataContext的直接对象(如:newDataContext()),都应该使用using()block。因此我的问题是:当我从内核中检索我的DataContext时,我是否仍然必须使用using()block?或者Ninject会帮我解决这个问题吗? 最佳答案 我正在为我的同事Bas调查此事。我正在查看Nin

c# - .NET Web Api 2.1 中 Ninject 绑定(bind)的无参数构造函数错误

目前正在编写API站点(.NETWebApi2.1)对于我们之前的API站点,我们使用了Ninject.MVC3包并手动连接依赖项解析器和范围,并按照建议将我们的逻辑插入到NinjectWebCommon中。这导致我们的新项目因无参数构造函数错误而心烦意乱。过去,我们没有正确连接WebApi中的依赖项解析器,这是一个致命的泄露。只有这一次,我们是。它在那里。varresolver=newNinjectDependencyResolver(kernel);GlobalConfiguration.Configuration.DependencyResolver=resolver;所以我有点

c# - IoC (Ninject) 和工厂

如果我有以下代码:publicclassRobotNavigationService:IRobotNavigationService{publicRobotNavigationService(IRobotFactoryrobotFactory){//...}}publicclassRobotFactory:IRobotFactory{publicIRobotCreate(stringnameOfRobot){if(name=="Maximilian"){returnnewKillerRobot();}else{returnnewStandardRobot();}}}我的问题是在这里进行

c# - 具有多个参数的 "Bind"的 Ninject 语法

如何在Ninject语法中使用多个参数,如下所示?Bind().To().WithConstructorArgument("connectionString",ConfigurationManager.ConnectionStrings["MyDb"].ConnectionString);如果需要传递多个参数怎么办? 最佳答案 您可以将调用链接到WithConstructorArgument:Bind().To().WithConstructorArgument("connectionString",ConfigurationMan

c# - 哪个是测试 Ninject 绑定(bind)的好方法?

我们在所有项目中都使用ninject,正如您所知,有时很难测试内核是否能够在执行时解析每种类型,因为有时当绑定(bind)和自动绑定(bind)的数量级(通过ninject扩展)很高。所以,我在这里要问的是,我如何知道我的内核在加载所有模块和绑定(bind)后能够解析每种类型?你做任何类型的单元测试吗?或者您只是在执行时对应用程序进行验收测试?任何建议都会很棒:) 最佳答案 编写一个集成测试,通过遍历应用程序中的所有根类型并从容器/内核请求它们来测试容器的配置。通过从容器中请求它们,您可以确定容器可以为您构建完整的对象图。根类型是直

c# - 将 ASP.Net MVC 4 Web API 与 Ninject.Web.WebApi 结合使用时出现问题

我正在尝试将新的ASP.NetMVC4WebAPI项目模板与Ninject一起使用,但由于出现以下错误而碰壁:Method'GetFilters'intype'Ninject.Web.WebApi.Filter.DefaultFilterProvider'fromassembly'Ninject.Web.WebApi,Version=3.0.0.0,Culture=neutral,PublicKeyToken=c7192dc5380945e7'doesnothaveanimplementation.我正在使用ASP.NetMVC4->WebAPI模板在VisualStudio2010中

c# - 如何在 ASP.NET MVC Web 应用程序中使用 Ninject?

我创建了一个新的MVCWeb应用程序,并且我引用了Ninject.dll、Ninject.Web.Common.dll和Ninject.Web.MVC.dll。Global.asax.cs:publicclassMvcApplication:NinjectHttpApplication{publicstaticvoidRegisterGlobalFilters(GlobalFilterCollectionfilters){filters.Add(newHandleErrorAttribute());}publicstaticvoidRegisterRoutes(RouteCollect

c# - Ninject 3 中的 .ToConstructor 和 .ToMethod 有什么区别?

在Ninject3中有一个新的.ToConstructorfeature.如前所述,它有助于强类型构造函数参数,例如:Bind().ToConstructor(ctorArg=>newMyService(ctorArg.Inject(),ctorArg.Inject()));以几乎相同的方式使用.ToConstructor和.ToMethod实际上有什么区别:Bind().ToMethod(x=>newMyService(x.Kernel.Get(),x.Kernel.Get()));它只是避免使用Kernel.Get()的语法糖,还是我还缺少其他东西? 最

c# - Dispose() 和 Ninject 指南

因此,我有一个从WCF服务公开的方法:publicGetAllCommentsResponseGetAllComments(GetAllCommentsRequestrequest){varresponse=newGetAllCommentsResponse();using(_unitOfWork)try{Guard.ArgNotNull(request,"request");varresults=_unitOfWork.CommentRepository.Get(d=>d.Id>0).ToArray();//...Dorestofstuffhere}catch(Exceptionex

c# - 验证: How to inject A Model State wrapper with Ninject?

我在看本教程http://asp-umb.neudesic.com/mvc/tutorials/validating-with-a-service-layer--cs,了解如何在包装器上包装我的验证数据。我想使用依赖注入(inject)。我正在使用ninject2.0namespaceMvcApplication1.Models{publicinterfaceIValidationDictionary{voidAddError(stringkey,stringerrorMessage);boolIsValid{get;}}}//包装器usingSystem.Web.Mvc;namesp