有人能为我指出正确的方向,让 Ninject 与 WCF Web API Preview 5 一起使用吗?我已在我的 ASP.NET MVC 3 项目以及使用 Ninject.Extensions.Wcf 库的另一个内部 WCF 服务中成功启动并运行它。但是,在创建新的 MVC 3 项目并从 NuGet 获取 WebApi.All 库时,我无法让它工作。
我看过这个 stackoverflow 帖子使用新的 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 方法进行设置,但没有喜悦。