2011-10-25 32 views
1

我有一個簡單的MVC3 Web應用程序。我使用結構映射作爲依賴注入。用StructureMap進行依賴注入...我做錯了什麼?

它與我的HomeController工作正常,但是當我去第二個控制器時,我有錯誤: MissingMethodException:沒有零參數構造函數。

我跟着我的每一步的教程發現...

THX。

下面的代碼:

public class HomeController : AuthorizedController 
{ 
    IRepository<User> _repository; 

    public HomeController(IRepository<User> repository) 
    { 
     _repository = repository; 
    } 
} 


public class AccountController : AuthorizedController 
{ 
    private readonly IRepository<User> _repository; 

    public AccountController(IRepository<User> repository) 
    { 
     _repository = repository; 
    } 
} 

而且我用這個簡單的注射:

For<IRepository<User>>().Use<UserRepository>(); 
+3

顯示代碼。尤其是'零參數構造函數'。我的賭注是,你沒有它,或者它是不可訪問的(公共) – sehe

+3

當然,我沒有它......我使用StructureMap來連接依賴關係 – user1012750

+0

你的控制器工廠在哪裏? – MattDavey

回答

0

是U確保其工作與HomeController的?如果你有第二個控制器的錯誤,那麼HomeController應該出現錯誤?

確保您的基本控制器AuthorizedController有一個無參數的公共構造

如果沒有定義一個類的構造函數,一個無參數的構造函數將被創建。但是,如果使用參數定義構造函數,則不會創建無參數構造函數。

ASP.net MVC Controllor Factory - System.Web.Mvc.DefaultControllerFactory.CreateController needs a parameterless constructor

+0

感謝您的回答。順便說一句:是的,它正在與HomeController合作。這是我不明白的一點。 – user1012750

+0

您的問題已解決?還是仍然存在?你能分享你的完整代碼感興趣,看看它是如何與家庭控制器合作? – swapneel

+0

發現問題。感謝所有。 – user1012750

相關問題