C#学习教程:缺少HttpConfiguration.get_ServiceResolver()但是,我收到以下异常:找不到方法:'System.Web.Http.Services.DependencyResolverSystem.Web.Http.HttpConfiguration.get_ServiceResolver()'。有没有人遇到过这个并让它起作用?GlobalConfiguration.Configuration.ServiceResolver已在RC中替换为GlobalConfiguration.Configuration.DependencyResolver。所以我猜你使用的Ninject包不是为RC设计的。这是一个突破性的变化。以下是让Ninject与ASP.NETMVC4WebAPIRC一起工作的步骤:使用Empty模板创建一个新的ASP.NETMVC4应用程序声明一个接口:publicinterfaceIFoo{stringGetBar();}随后是一个实现:publicclassFoo:IFoo{publicstringGetBar(){return"thebar";}}然后添加一个API控制器:publicclassValuesController:ApiController{privatereadonlyIFoo_foo;publicValuesController(IFoofoo){_foo=foo;}publicstringGet(){return_foo.GetBar();}}安装Ninject.Mvc3NuGet包(Install-PackageNinject.Mvc3)定义自定义API依赖解析器如下:内部NinjectDependencyScope(IResolutionRoot解析器){Contract.Assert(解析器!=null);this.resolver=解析器;}publicvoidDispose(){IDisposabledisposable=resolverasIDisposable;处置();解析器=空;}publicobjectGetService(TypeserviceType){if(resolver==null)thrownewObjectDisposedException("this","Thisscope已被处置");returnresolver.TryGet(serviceType);}publicIEnumerableGetServices(TypeserviceType){if(resolver==null)thrownewObjectDisposedException("this","Thisscopehasalreadybeendisposed");返回解析器(kernel.BeginBlock());}}在安装NuGet时创建的~/App_Start/NinjectWebCommon.cs/CreateKernel方法中,在RegisterServices(kernel);行之后添加以下行RegisterServices(kernel);行:GlobalConfiguration.Configuration。DependencyResolver=newNinjectDependencyResolver(kernel);配置你的内核:privatestaticvoidRegisterServices(IKernelkernel){kernel.Bind().To();}按F5并导航到/api/valuesRC时你会很明显点击RTM我希望有一个Ninject.Mvc4NuGet可以将这10个步骤缩短到最多5个。以上就是C#学习教程:HttpConfiguration.get_ServiceResolver()缺少的全部内容分享。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权请点击右侧联系管理员删除。如需转载请注明出处:
