gpt4 book ai didi

c# - 临时文件包含对不带参数的构造函数的引用,而它不应该

转载 作者:太空宇宙 更新时间:2023-11-03 11:49:59 26 4
gpt4 key购买 nike

我有一些 WebUserControls,它们采用参数来确定它们如何初始化自己。但是,当我编译页面时出现错误

'ControlName' does not contain a constructor that takes '0' arguments

我不会在没有参数的情况下在任何地方调用它,看起来是在临时文件中生成了一个引用。我有另一个没有空构造函数的控件,它不需要在那里创建一个,所以它不应该有一个。

实际的错误是这样的:

Compiler Error Message: CS1729:

'ControlName' does not contain a constructor that takes '0' arguments

Source Error:

Line 108: private static bool @__initialized; Line 109: Line 110:
[System.Diagnostics.DebuggerNonUserCodeAttribute()] Line 111: public control_ascx() { Line 112:
((global::ControlNamespace)(this)).AppRelativeVirtualPath = "~/ControlName.ascx";

Source File: (Path)Local\Temp\Temporary ASP.NET Files\root\1aca8e08\3fab105e\App_Web_controlname.ascx.cdcab7d2.tzm0xzkd.0.cs Line: 110

控件看起来像这样:

public partial class ControlName: System.Web.UI.UserControl
{
public ControlName(IParameter parameter)
{
Method(parameter);
}
}

编辑:根据下面的评论,我似乎在设计器文件中有一个对控件的引用……某处……我能找到的所有引用都位于代码后面,只有一个异常(exception)。 .ascx 文件中的声明:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ControlName.ascx.cs" Inherits="Control" %>

我认为这是罪魁祸首,但经过进一步检查,我发现其他控件具有类似的声明并且不需要默认构造函数。

如何找到引用控件的位置?

解决方案:

我有引用标签

<%@ Reference Control="~/ControlName.ascx" %>

显然算作设计师元素的早期遗留物。

下面的答案实际上并不包含此信息,但很好地描述了问题所在。

最佳答案

我不是 Web 开发方面的专家,但看起来您已经在 Web 表单设计器上放置了一个控件实例,并且该设计器正在生成需要无参数构造函数的代码。

如果是这种情况,那么要解决这个问题,您应该从窗体中删除控件或添加无参数构造函数。

关于c# - 临时文件包含对不带参数的构造函数的引用,而它不应该,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2373509/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com