.net &引用;不实现IControllerFactory.CreateController";在VisualStudio2010中
编译此代码时:.net &引用;不实现IControllerFactory.CreateController";在VisualStudio2010中,.net,asp.net-mvc,castle-windsor,.net,Asp.net Mvc,Castle Windsor,编译此代码时: public class WindsorControllerFactory : IControllerFactory { private readonly WindsorContainer _container; public WindsorControllerFactory(WindsorContainer container) { _container = container; } public IControlle
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);
}
}
我得到这个错误:
“WindsorController Factory”没有
实现接口成员
'System.Web.Mvc.IControllerFactory.CreateController(System.Web.Routing.RequestContext,
字符串)'
很明显,它实现了这个成员。有人遇到过这个问题吗
我在RTM上复制了这一点,打开了一个。您可能有两个相互冲突的System.Web.routing版本或类似版本。在
System.ServiceModel.Channels
命名空间中还有一个RequestContext
类;包含在System.ServiceModel.dll程序集中
将鼠标悬停在方法的RequestContext参数类型上,并检查它是否指向正确的参数类型
更多信息在我添加了对System.Web.Routing 4.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.0(v4.0.30128)包括对System.Web(v4.0.30319)的引用。尝试右键单击IControllerFactory afteer:“,然后说implement interface,错过的将出现。”up@Oskar-没有遗漏的方法,这就是问题所在。如果我注释掉方法CreateController,并使用Resharper执行“实现方法”,代码仍然无法编译。然后尝试显式实现?@Oskar-好主意,但不起作用。此外,我尝试扩展DefaultControllerFactory而不是实现IControllerFactory,但没有起作用。是否安装了多个Beta或RCs?你的垃圾箱文件夹里有可疑的东西吗?你试过用csc.exe编译它吗?顺便说一句-查看VS的输出窗口以查看其生成的csc.exe调用?我之前有beta 2,然后完全卸载了它并安装了RC。我将尝试查看csc.exe所说的内容。我编写了显式类名,但没有帮助:(你写过System.Web.Routing.RequestContext还是System.ServiceModel.Channels.RequestContext?你应该有第一个。我写过System.Web.Routing.RequestContext,但它不起作用。我想这只是Visual Studio中一个无法解决的错误。我会升级到RTM,看看它是否能解决问题。我会尝试一下你的建议。帮帮我吧!这是我的建议。)在.NET 4.0解决方案中,定义了自定义控制器(通过IController)并引用了MVC 2.0。