【发布时间】:2011-09-29 19:19:58
【问题描述】:
谁能指出我让 Ninject 使用 WCF Web API Preview 5 的正确方向?我在我的 ASP.NET MVC 3 项目以及另一个使用 Ninject.Extensions.Wcf 库的内部 WCF 服务中成功启动并运行了它。但是,在创建新的 MVC 3 项目并从 NuGet 获取 WebApi.All 库时,我无法让它工作。
我查看了此 stackoverflow 帖子 Setting up Ninject with the new WCF Web API,但无法使其正常工作,我认为这可能与最新版本中的一些更改有关。
我也不确定除了主要的 Ninject 库之外还可以引用哪些 Ninject 库。我是否使用 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 的其他方式方法但没有快乐。
【问题讨论】:
-
@Alexander 已按要求发布了包含代码的更新。
标签: ninject wcf-web-api