我有一個使用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