HttpConfiguration.get_ServiceResolver()缺少
我正在使用MVC4连接Ninject并让它正在努力实际解决依赖关系。 但是,我得到以下exception:
找不到方法:’System.Web.Http.Services.DependencyResolver System.Web.Http.HttpConfiguration.get_ServiceResolver()’。
有没有人碰到这个并且有工作?
GlobalConfiguration.Configuration.ServiceResolver
已替换为RC中的GlobalConfiguration.Configuration.DependencyResolver
。 所以我猜你使用的Ninject软件包并不是专为RC设计的。 这是一个突破性的变化。
以下是使Ninject与ASP.NET MVC 4 Web API RC一起工作的步骤:
- 使用Empty模板创建一个新的ASP.NET MVC 4应用程序
-
声明一个接口:
public interface IFoo { string GetBar(); }
-
然后是一个实现:
public class Foo : IFoo { public string GetBar() { return "the bar"; } }
-
然后添加一个API控制器:
public class ValuesController : ApiController { private readonly IFoo _foo; public ValuesController(IFoo foo) { _foo = foo; } public string Get() { return _foo.GetBar(); } }
-
安装
Ninject.Mvc3
NuGet包(Install-Package Ninject.Mvc3
) -
定义一个自定义API依赖关系解析器,如下所示:
public class NinjectDependencyScope : IDependencyScope { private IResolutionRoot resolver; internal NinjectDependencyScope(IResolutionRoot resolver) { Contract.Assert(resolver != null); this.resolver = resolver; } public void Dispose() { IDisposable disposable = resolver as IDisposable; if (disposable != null) disposable.Dispose(); resolver = null; } public object GetService(Type serviceType) { if (resolver == null) throw new ObjectDisposedException("this", "This scope has already been disposed"); return resolver.TryGet(serviceType); } public IEnumerable
-
在安装NuGet时创建的
~/App_Start/NinjectWebCommon.cs/CreateKernel
方法中,在RegisterServices(kernel);
之后添加以下行RegisterServices(kernel);
线:GlobalConfiguration.Configuration.DependencyResolver = new NinjectDependencyResolver(kernel);
-
配置你的内核:
private static void RegisterServices(IKernel kernel) { kernel.Bind
().To (); } -
点击F5并导航到
/api/values
- 你会
the bar
。
显然当RC点击RTM时,我希望会有一个Ninject.Mvc4
NuGet将这10个步骤缩短到最多5个。
- 自定义身份validation和ASP.NET MVC
- 如果我希望使用ASP.NET MVC4创建ApiKey受限资源,我应该使用IAuthorizationFilter吗?
- 使用PostAsync,HttpClient和Json从C#Metro UI客户端调用MVC4 WebAPI方法
- MVC4 – 如何从剃刀视图调用控制器方法
- Asp MVC 4创建类似于Html.BeginForm的自定义html辅助方法
- 何时在MVC中使用哪种类型的成员资格的一般规则
- 返回模型以使用selectlistitem默认值查看错误
- 如何使用Ajax Begin表单正确使用部分视图
- 不引人注意的DateTime? 在MVC4中validation