简体   繁体   English

没有在MVc5回购模式中为此对象定义无参数构造函数

[英]No parameterless constructor defined for this object in MVc5 Repo pattern

I am Having this issue 我有这个问题

No parameterless constructor defined for this object. 没有为此对象定义无参数构造函数。 Description: An unhandled exception occurred during the execution of the current web request. 说明:执行当前Web请求期间发生未处理的异常。 Please review the stack trace for more information about the error and where it originated in the code. 请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。

Exception Details: System.MissingMethodException: No parameterless constructor defined for this object. 异常详细信息:System.MissingMethodException:没有为此对象定义无参数构造函数。

I am create a new project in mvc and used Layered architecture for data and repository. 我在mvc中创建一个新项目,并使用了分层架构来存储数据和存储库。 so when i called account controller i ZGit this error 所以当我打电话给帐户控制器我ZGit这个错误

This is My Code :- of Account Controller 这是我的代码:-客户经理

public class AccountController : Controller
    {
        private readonly IAuthentication repositoryIAuthentication;
        private readonly IUserRepository repositoryUser;
        private readonly IPostRepository repositoryPost;
        private readonly ICommentRepository repositoryComment;
        private readonly ICategoryRepository repositoryCategory;
        private readonly MembershipProvider repositoryMemberShipProvider;
        private readonly IDEncryptionRepository repositoryDEncryption;
        private readonly IEmailSettingRepository repositoryEmailSetting;
        private readonly ISettingRepository repositorySetting;
        public AccountController(IUserRepository repoUser,
                                 IAuthentication repoIAuthentication,
                                 IPostRepository repoPost,
                                 ICommentRepository repoComment,
                                 ICategoryRepository repoCategory,
                                 MembershipProvider repoMemberShipProvider,
                                 IDEncryptionRepository repoDEncryption,
                                 IEmailSettingRepository repoEmailSetting,
                                 ISettingRepository repoSetting)
        {
            repositoryUser = repoUser;
            repositoryIAuthentication = repoIAuthentication;
            repositoryCategory = repoCategory;
            repositoryComment = repoComment;
            repositoryPost = repoPost;
            repositoryMemberShipProvider = repoMemberShipProvider;
            repositoryDEncryption = repoDEncryption;
            repositoryEmailSetting = repoEmailSetting;
            repositorySetting = repoSetting;
        }

This is the detailed error which shows on page : - 这是显示在页面上的详细错误:-

[MissingMethodException: No parameterless constructor defined for this object.] System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) +0 [MissingMethodException:没有为此对象定义无参数的构造函数。] System.RuntimeTypeHandle.CreateInstance(RuntimeType类型,布尔publicOnly,布尔noCheck,布尔&canBeCached,RuntimeMethodHandleInternal&ctor,布尔&bNeedSecurityCheck)+0
System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) +119 System.RuntimeType.CreateInstanceSlow(布尔publicOnly,布尔skipCheckThis,布尔fillCache,StackCrawlMark和stackMark)+119
System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) +232 System.Activator.CreateInstance(Type type, Boolean nonPublic) +83 System.Activator.CreateInstance(Type type) +11 System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType) +55 System.RuntimeType.CreateInstanceDefaultCtor(布尔publicOnly,布尔skipCheckThis,布尔fillCache,StackCrawlMark和stackMark)+232 System.Activator.CreateInstance(类型,布尔非公共布尔)+83 System.Activator.CreateInstance(类型)+11 System.Web.Mvc .DefaultControllerActivator.Create(RequestContext requestContext,类型controllerType)+55

[InvalidOperationException: An error occurred when trying to create a controller of type 'WebAppBlog.Controllers.AccountController'. [InvalidOperationException:尝试创建类型为'WebAppBlog.Controllers.AccountController'的控制器时发生错误。 Make sure that the controller has a parameterless public constructor.] 确保控制器具有无参数的公共构造函数。
System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType) +178 System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext,类型controllerType)+178
System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType) +76 System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext,类型controllerType)+76
System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName) +88 System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext,字符串controllerName)+88
System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory) +194 System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state) +50 System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext,IController&控制器,IControllerFactory和工厂)+194 System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext,AsyncCallback回调,对象状态)+50
System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object state) +48 System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext,AsyncCallback回调,对象状态)+48
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) +16 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext上下文,AsyncCallback cb,对象extraData)+16
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +103 System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) +48 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +159 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+103 System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep步骤)+48 System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值且已同步完成)+159

I suspect the issue lies with the huge amount of dependencies your controller has. 我怀疑问题在于您的控制器具有大量依赖关系。 One of the repositories probably has a dependency which has not been registered with your container. 其中一个存储库可能具有未在您的容器中注册的依赖项。

I would look into the unit of work pattern and if using Entity Framework use it's dbcontext (which implements the unit of work pattern). 我将研究工作单元模式,如果使用Entity Framework,请使用它的dbcontext(实现工作单元模式)。 Or even better abstract to an IAccountService and in the implementation use the unit of work pattern there. 甚至可以更好地抽象到IAccountService并在实现中使用那里的工作单元模式。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 在mvc中没有为此对象定义无参数构造函数 - No parameterless constructor defined for this object in mvc 在MVC中没有为此对象错误定义无参数构造函数 - No parameterless constructor defined for this object error in MVC 没有为此对象MVC4定义无参数的构造函数 - No parameterless constructor defined for this object MVC4 没有为此对象定义无参数构造函数-MVC项目 - No parameterless constructor defined for this object - MVC project 没有为此对象定义无参数构造函数。 MVC 5 - No parameterless constructor defined for this object. MVC 5 没有为此对象定义无参数构造函数 - No parameterless constructor defined for this object ASP.NET MVC 4 + Ninject MVC 3 = 没有为此对象定义无参数构造函数 - ASP.NET MVC 4 + Ninject MVC 3 = No parameterless constructor defined for this object MVC5和Ninject:无参数构造函数错误 - MVC5 and Ninject:Parameterless constructor error Ajax调用MVC操作方法-没有为此对象定义无参数构造函数 - Ajax calling MVC action method - No parameterless constructor defined for this object 在ASP.NET MVC中没有为此对象定义无参数构造函数 - No parameterless constructor defined for this object in ASP.NET MVC
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM