在Visual Studio 2010
问题描述:
“未实现IControllerFactory.CreateController” 当编译此代码:在Visual Studio 2010
public class WindsorControllerFactory : IControllerFactory
{
private readonly WindsorContainer _container;
public WindsorControllerFactory(WindsorContainer container)
{
_container = container;
}
public IController CreateController(RequestContext requestContext,
string controllerName)
{
return (IController)_container.Resolve(controllerName);
}
public void ReleaseController(IController controller)
{
_container.Release(controller);
}
}
我收到此错误:
'WindsorControllerFactory' does not implement interface member 'System.Web.Mvc.IControllerFactory.CreateController(System.Web.Routing.RequestContext, string)'
那么,它显然实现了这个成员。有没有人遇到过这个问题?
我在RTM上转载了这个,打开了ticket with Microsoft。
答
System.ServiceModel.Channels
命名空间中还有一个RequestContext
类;包含在System.ServiceModel.dll程序集中。
将鼠标悬停在您的方法的RequestContext参数类型上,并检查它是否指向正确的方法。
更多信息here
答
错误走了后,我加入参考System.Web.Routing 4.0.0.0。在此之前它是间接引用到3.5.0.0版本(通过System.Web.Mvc,版本= 2.0.0.0,文化=中性公钥= 31bf3856ad364e35)
因此我有以下引用:
System.Web程序。 Mvc 2.0.0.0(v2.0.50727)
System.Web.Routing 4.0.0.0(v4.0.30128)
答
包含对System.Web(v4.0.30319)的引用。
尝试右键单击IControllerFactory后面的“:”并说实现界面,错过会出现 – 2010-04-10 14:03:13
@Oskar - 没有错过的方法,这就是问题所在。如果我注释掉CreateController方法,并使用Resharper执行“实现方法”,则代码仍然不能编译。 – ripper234 2010-04-10 14:04:41
尝试明确实施吗? – 2010-04-10 14:05:44