我已经让Ninject MVC与Ninject WCF一起工作,为了使它工作,我在CreateKernel方法中增加了两行。
kernel.Bind<ServiceHost>().To<NinjectServiceHost>();
KernelContainer.Kernel = kernel;
注入依赖项,但未调用Dispose方法,我尝试了使用InRequestScope并执行自己的作用域Func返回OperationContext.Current作为作用域对象,但未调用dispose。
此信息已过时,对于MVC和WCF从Nuget Ninject.MV3和Ninject.Extensions.WCF (3.x)下载,MVC模板将添加一个ninject引导程序NinjectWebCommon.cs,并在svc中添加对编辑svc的支持(右键单击/查看标记)并将添加到xml节点。
发布于 2012-01-06 10:07:50
我无法回答Remo的答案,因为我是一个堆栈溢出n00b,但是n00b例外的问题是它已经从.net 4.0中的System.Core转移到了.net 4.5中的mscorlib。如果安装.net 4.5,问题就会消失。我想有些东西是用.net 4.5混合制作的。https://github.com/ninject/Ninject.Web.Common/issues/3听起来好像很快就会修好。至于Wcf的InRequestScope问题,雷莫今天给了我一些谷歌组的帮助.“添加一个从"Ninject.GlobalKernelRegistrationModule”派生的新模块,并将其加载到内核中。这将在最终版本中得到修复。“
比方说..。
public class MyModule : Ninject.GlobalKernelRegistrationModule<WcfRequestScopeCleanup>
{
}
//And where you load your modules...
kernel.Load<MyModule>();
发布于 2012-01-03 15:53:08
我建议您使用Nuget提供的Ninject 3.0.0-rc2。InRequestScope同时适用于Web和WCF请求端。
https://stackoverflow.com/questions/8712682
复制相似问题