none
[MissingMethodException: 没有为该对象定义无参数的构造函数。 RRS feed

  • 问题

  • [MissingMethodException: 没有为该对象定义无参数的构造函数。]
       System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) +0
       System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache) +98
       System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache) +241
       System.Activator.CreateInstance(Type type, Boolean nonPublic) +69
       System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType) +67
    
    [InvalidOperationException: An error occurred when trying to create a controller of type 'WebSchool.Controllers.HomeController'. Make sure that the controller has a parameterless public constructor.]
       System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType) +182
       System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType) +80
       System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName) +74
       System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory) +232
       System.Web.Mvc.<>c__DisplayClass6.<BeginProcessRequest>b__2() +49
       System.Web.Mvc.<>c__DisplayClassb`1.<ProcessInApplicationTrust>b__a() +13
       System.Web.Mvc.SecurityUtil.<GetCallInAppTrustThunk>b__0(Action f) +7
       System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action) +22
       System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Func`1 func) +124

    • 已编辑 刘伟健 2013年4月21日 16:54 新问题出现
    • 已移动 ThankfulHeart 2013年4月22日 1:51 NHibernate问题
    2013年4月21日 7:53

答案

  • 我記得time貌似SQL Server的保留關鍵字,

    您把名稱是time的欄位及屬性等等都修改下看看~



    Best regards

    • 已标记为答案 刘伟健 2013年5月1日 5:32
    2013年4月24日 9:56

全部回复

  • 請將代碼貼出來,

    一般是繼承之後的子類別建構函數設計錯誤,或是父類別忘了添加無參數的建構函數:



    Best regards

    2013年4月22日 8:45
  • <?xml version="1.0" encoding="utf-8" ?>
    <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Core_.Domain.Model" assembly="Core_">
      <class name="Problems" table="dt_Problems" lazy="true" >
        <id name="Id" column="ID" type="int">
          <generator class="native" />
       
        </id>
        <many-to-one name="account" class="User" column="AccountID"  />
        <property name="time" >
          <column name="Time" />
        </property>
        <property name="floor">
          <column name="Floor" />
        </property>
        <property name="title" >
          <column name="Tilte" />
        </property>
    
      </class>
    </hibernate-mapping> //problems.hbm.xml
    
    
    <?xml version="1.0" encoding="utf-8" ?>
    <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Core_.Domain.Model" assembly="Core_">
      <class name="SubjectType" table="dt_SubjectType" lazy="true" >
        <id name="Id" column="ID" type="int">
          <generator class="native"/>
        </id>
        <property name="_subjectType"  >
          <column name="SubjectType" />
        </property>
      </class>
    </hibernate-mapping> //SubjectType

    2013年4月22日 16:22
  • 输入字符串的格式不正确。

    说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

    异常详细信息: System.FormatException: 输入字符串的格式不正确。

    源错误:
    行 19:                Configuration config = new Configuration();
    行 20:                config.Configure();
    行 21:              _SessionFactory = config.BuildSessionFactory();
    行 22:         }
    行 23:        private static ISessionFactory GetSessionFactory()

    源文件: D:\users\administrator\documents\visual studio 2010\Projects\WebSchool\NHibernateRepository\SessionFactory.cs    行: 21

    堆栈跟踪:
    [FormatException: 输入字符串的格式不正确。]
       System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) +9591259
       System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +119
       System.Int32.Parse(String s) +23
       NHibernate.Util.PropertiesHelper.GetInt32(String property, IDictionary`2 properties, Int32 defaultValue) +86
       NHibernate.Cfg.SettingsFactory.BuildSettings(IDictionary`2 properties) +1195
       NHibernate.Cfg.Configuration.BuildSettings() +76
       NHibernate.Cfg.Configuration.BuildSessionFactory() +107
       NHibernateRepository.SessionFactory.Init() in D:\users\administrator\documents\visual studio 2010\Projects\WebSchool\NHibernateRepository\SessionFactory.cs:21
       NHibernateRepository.SessionFactory.GetSessionFactory() in D:\users\administrator\documents\visual studio 2010\Projects\WebSchool\NHibernateRepository\SessionFactory.cs:26
       NHibernateRepository.SessionFactory.GetNewSession() in D:\users\administrator\documents\visual studio 2010\Projects\WebSchool\NHibernateRepository\SessionFactory.cs:31
       NHibernateRepository.SessionFactory.GetCurrentSession() in D:\users\administrator\documents\visual studio 2010\Projects\WebSchool\NHibernateRepository\SessionFactory.cs:39
       NHibernateRepository.Repositories.Repository`1.FindAll() in D:\users\administrator\documents\visual studio 2010\Projects\WebSchool\NHibernateRepository\Repositories\Repository.cs:36
       WebService.Services.Implementations.ProblemsService.GetTypeList() in D:\users\administrator\documents\visual studio 2010\Projects\WebSchool\WebService\Services\Implementations\ProblemsService.cs:35
       Test0.Controllers.HomeController.GetCategories() in D:\users\administrato
    2013年4月22日 16:23
  • 表dt_problems有一个SubjectTypeID(int)作为外键连接到 dt_SubjectType 的ID主键

    2013年4月22日 16:31
  • 我想问得时是不是我的映射类文件出现了问题,一直出现这个错误

    2013年4月22日 16:33
  • 您把底下這行的 type 先拿掉試試

    <id name="Id" column="ID" type="int">


    Best regards

    2013年4月23日 2:40
  • 不行哦,在我启动调试是vs给我定位到了

    行 21: _SessionFactory = config.BuildSessionFactory();

    并提示“输入字符串参数不正确。在把一个字符串转化为DateTime类型 先分析字符串…然后在放到DateTime”

    2013年4月23日 4:17
  • 关于我实体类的设计都是属性名“Id”都是public virtuall int Id 。所有实体类属性没有datetime 类型设计,包括数据库也是,求解!!
    2013年4月23日 4:22
  • 想知道下面来两个方法时有什么功能,parse方法里的参数s又是哪里的?问题究竟出现在哪里?我的理解应该是再映射文件的设计,具体又是什么呢?好奇怪

    堆栈跟踪:

    [FormatException: 输入字符串的格式不正确。]
       System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) +9591259
       System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +119
       System.Int32.Parse(String s) +23
       NHibernate.Util.PropertiesHelper.GetInt32(String property, IDictionary`2 properties, Int32 defaultValue) +86
       NHibernate.Cfg.SettingsFactory.BuildSettings(IDictionary`2 properties) +1195

    NHibernate.Util.PropertiesHelper.GetInt32()

    System.Int32.Parse(String s)


    2013年4月23日 4:30
  • 把這方法貼出來看下吧:

    Configuration.BuildSessionFactory()




    Best regards

    2013年4月23日 8:02
  • using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using NHibernate;
    using NHibernate.Cfg;
    using System.Web;
    using NHibernateRepository.SeesionStorage;
    
    
    namespace NHibernateRepository
    {
       public class SessionFactory
        {
           private static ISessionFactory _SessionFactory;
           private static void Init()
           {
               
                   Configuration config = new Configuration();
                   config.Configure();
                 _SessionFactory = config.BuildSessionFactory();
            }
           private static ISessionFactory GetSessionFactory()
           {
               if (_SessionFactory == null)
                   Init();
               return _SessionFactory;
           }
           private static ISession GetNewSession()
           {
               return GetSessionFactory().OpenSession();
           }
           public static ISession GetCurrentSession()
           {
               ISessionStorageContainer _sessionStorageContainer = SessionStorageFactory.GetStorageContainer();
               ISession currentSession = _sessionStorageContainer.GetCurrentSession();
               if (currentSession == null)
               {
                   currentSession = GetNewSession();
                   _sessionStorageContainer.Store(currentSession);
               }
               return currentSession;
           }
       }
        
        
    }

    你好,
    Configuration.BuildSessionFactory()这个方法是Nhibernate.dll提供的,我没法给,我是使用nhibernante来连接sql server 2008的
    2013年4月23日 8:22
  • 我記得time貌似SQL Server的保留關鍵字,

    您把名稱是time的欄位及屬性等等都修改下看看~



    Best regards

    • 已标记为答案 刘伟健 2013年5月1日 5:32
    2013年4月24日 9:56