C# 没有为此对象定义无参数构造函数ASP.NET网站
我出错了,请任何人帮我。我正在使用DotnetFramework4和LINQtoSQL 下面是堆栈跟踪C# 没有为此对象定义无参数构造函数ASP.NET网站,c#,asp.net,linq,linq-to-sql,C#,Asp.net,Linq,Linq To Sql,我出错了,请任何人帮我。我正在使用DotnetFramework4和LINQtoSQL 下面是堆栈跟踪 No parameterless constructor defined for this object. 描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源 异常详细信息:System.MissingMethodException:未为此对象定义无参数构造函数 源错误: 在执行当前web请求期间生成了未经处理的异常。有关异常的起源和位
No parameterless constructor defined for this object.
描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源
异常详细信息:System.MissingMethodException:未为此对象定义无参数构造函数
源错误:
在执行当前web请求期间生成了未经处理的异常。有关异常的起源和位置的信息可以使用下面的异常堆栈跟踪来识别
堆栈跟踪:
[MissingMethodException: No parameterless constructor defined for this object.]
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, StackCrawlMark& stackMark) +113
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) +6
System.Web.HttpRuntime.FastCreatePublicInstance(Type type) +78
System.Web.UI.WebControls.LinqDataSourceView.CreateContext(Type contextType) +6
System.Web.UI.WebControls.LinqDataSourceView.CreateContextAndTable(DataSourceOperation operation) +799
System.Web.UI.WebControls.LinqDataSourceView.CreateContextAndTableForSelect() +137
System.Web.UI.WebControls.LinqDataSourceView.CreateContext(DataSourceOperation operation) +12
System.Web.UI.WebControls.ContextDataSourceView.GetSource(QueryContext context) +20
System.Web.UI.WebControls.LinqDataSourceView.GetSource(QueryContext context) +325
System.Web.UI.WebControls.LinqDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +63
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +21
System.Web.UI.WebControls.DataBoundControl.PerformSelect() +138
System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +30
System.Web.UI.WebControls.GridView.DataBind() +4
System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +105
System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +75
System.Web.UI.Control.EnsureChildControls() +83
System.Web.UI.Control.PreRenderRecursiveInternal() +42
System.Web.UI.Control.PreRenderRecursiveInternal() +155
System.Web.UI.Control.PreRenderRecursiveInternal() +155
System.Web.UI.Control.PreRenderRecursiveInternal() +155
System.Web.UI.Control.PreRenderRecursiveInternal() +155
System.Web.UI.Control.PreRenderRecursiveInternal() +155
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +974
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.18446
这个错误是不言自明的。您可能已经创建了这样的类。您只需要在其中添加一个无参数构造函数。见下例:
public class cls
{
public cls ()
{
}
// your other parameterized constructors
}
问题已经解决。我只是在LINQDataContext.Designer.cs中创建了一个无参数构造函数
public ChallanTemplateDataContext():
base(Util.connectionStr, mappingSource)
{
}LINQDataContext.Designer.cs文件是自动生成的,不要更改它,而是在单独的文件中使用非参数化构造函数创建分部类,例如:
public partial class MyDataContext : System.Data.Linq.DataContext
{
public MyDataContext()
:base( ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString, mappingSource)
{
}
}
您的答案可能不太清楚:OP有一个已经有参数化构造函数的类,但它们也需要一个默认的无参数构造函数,这可能是因为序列化。我只是在调试代码时将LinqDataSource分配给Gridview,但在显示页面加载错误页面之后,没有任何异常。@slugster:同意我们无法通过查看stacktrace找出确切的问题。我们可以吗?所以这是我能建议的最接近OP问题的解决方案。你能不能在你的aspx页面的代码后面贴上代码。太好了。你所需要的只是正确的方向,你自己解决了问题。干杯
public partial class MyDataContext : System.Data.Linq.DataContext
{
public MyDataContext()
:base( ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString, mappingSource)
{
}
}