使用WCF Web API预览的Ninject 5
发布时间:2020-12-14 19:40:28 所属栏目:资源 来源:网络整理
导读:任何人可以指出我正确的方向让Ninject使用WCF Web API Preview 5?我已经成功地运行在我的ASP.NET MVC 3项目中,也在另一个内部WCF服务使用Ninject.Extensions.Wcf库.但是,当创建一个新的MVC 3项目并从NuGet获取WebApi.All库时,我无法使其工作. 我已经看过这
任何人可以指出我正确的方向让Ninject使用WCF Web API Preview 5?我已经成功地运行在我的ASP.NET MVC 3项目中,也在另一个内部WCF服务使用Ninject.Extensions.Wcf库.但是,当创建一个新的MVC 3项目并从NuGet获取WebApi.All库时,我无法使其工作.
我已经看过这个stackoverflow后Setting up Ninject with the new WCF Web API,但不能让它工作,我认为可以与最新版本的一些变化. 我也不确定哪个Ninject Libraries参考超过主要的.我使用Ninject.MVC3,Ninject.Extensions.Wcf. 对此的任何帮助将不胜感激. ****更新** 我正在使用的代码来自上述问题的答案.我有自己的类文件. public class NinjectResourceFactory : IResourceFactory { private readonly IKernel _kernel; public NinjectResourceFactory(IKernel kernel) { _kernel = kernel; } public object GetInstance(Type serviceType,InstanceContext instanceContext,HttpRequestMessage request) { return _kernel.Get(serviceType); } public void ReleaseInstance(InstanceContext instanceContext,object service) { // no op } } 我在我的global.asax中有 var configuration = HttpConfiguration.Create().SetResourceFactory(new NinjectResourceFactory()); RouteTable.Routes.MapServiceRoute<myResource>("resource",configuration); 我遇到的问题是IResourceFactory接口不被识别,并且HttpConfiguration.Create()不再存在,所以我需要设置SetResourceFactory其他一些我试图使用HttpConfiguration().CreateInstance方法,但没有喜悦. 解决方法
以下是我的代码与Ninject和WebApi,它的工作原理.
创建一个类继承自WebApiConfiguration public class NinjectWebApiConfiguration : WebApiConfiguration { private IKernel kernel = new StandardKernel(); public NinjectWebApiConfiguration() { AddBindings(); CreateInstance = (serviceType,context,request) => kernel.Get(serviceType); } private void AddBindings() { kernel.Bind<IProductRepository>().To<MockProductRepository>(); } } 并在RegisterRoutes中使用NinjectWebApiConfiguration public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); var config = new NinjectWebApiConfiguration() { EnableTestClient = true }; routes.MapServiceRoute<ContactsApi>("api/contacts",config); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |