编译此代码时:
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'没有 实现接口成员 “System.Web.Mvc.IControllerFactory.CreateController(System.Web.Routing.RequestContext, 字符串)'
好吧,它显然实现了这个成员。有人遇到过这个问题吗?
我在RTM上重现了这个,打开了ticket with Microsoft。
答案 0 :(得分:3)
添加对System.Web.Routing 4.0.0.0的引用后,错误消失了。在此之前它间接引用3.5.0.0版本(通过System.Web.Mvc,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35)
因此我有以下参考资料:
System.Web.Mvc 2.0.0.0(v2.0.50727)
System.Web.Routing 4.0.0.0(v4.0.30128)
答案 1 :(得分:0)
你可能有两个相互矛盾的System.Web.routing版本或类似的东西。
答案 2 :(得分:0)
RequestContext
命名空间中还有一个System.ServiceModel.Channels
类;包含在System.ServiceModel.dll程序集中。
将鼠标悬停在您方法的RequestContext参数类型上,并检查它是否指向正确的方法。
更多信息here
答案 3 :(得分:0)
包含对System.Web(v4.0.30319)的引用。