我有一个使用StructureMap进行依赖注入的项目。该项目编译好一个MVC项目,但一切都移动到MVC2项目后,我现在收到以下错误:ASP.NET MVC 2预览1 - 问题编译StructureMap控制器工厂
Test.Web.Controllers.StructureMapControllerFactory.GetControllerInstance(System.Type)': no suitable method found to override C:\Test\Web\Controllers\StructureMapControllerFactory.cs 11 40 Test.Web
这里是我的StructureMapControllerFactory:
using System;
using System.Web.Mvc;
using StructureMap;
namespace Test.Web.Controllers
{
public class StructureMapControllerFactory : DefaultControllerFactory
{
protected override IController GetControllerInstance(Type controllerType)**
{
IController result = null;
try
{
if (controllerType == null) return base.GetControllerInstance(controllerType);
result = ObjectFactory.GetInstance(controllerType) as Controller;
}
catch (StructureMapException)
{
System.Diagnostics.Debug.WriteLine(ObjectFactory.WhatDoIHave());
throw;
}
return result;
}
}
}
我已经找到了一个半后有关这个问题,但它没有提供任何有关如何解决我的问题的见解:MVC 2 preview 1 - methods with parameters in the controller fail to load
显然我必须错过1.0-2.0进展的变化,但我不知道是什么改变了。任何帮助总是感激。
非常感谢Craig。我想知道为什么在探索System.Web.MVC [2.0.0.0]名称空间时,VS对象浏览器中没有反映出这一点。 – 2009-09-01 20:31:37
不确定,但您可以在代码编辑器中键入ov [空格键](即开始键入“覆盖”,您通常会在其中声明新方法的位置),以获取当前类的可重载方法列表及其签名。 – 2009-09-01 20:39:10