2011-10-25 31 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

相关问题