【问题标题】:ASP.NET auto-generate aspx.designer.cs turn off?ASP.NET 自动生成 aspx.designer.cs 是否关闭?
【发布时间】:2011-02-24 09:52:13
【问题描述】:

在我处理 asp.net/c# 项目时,我遇到了自动生成其内容的 foobar.aspx.designer.cs。例如,当我更改代码/设计器时,designer.cs 会自动更新其内容。

由于我有点控制权,我想自己维护代码。我对我不需要的 cmets 的过度杀伤力不满意。喜欢:

    /// <summary>
    /// Form1 control.
    /// </summary>
    /// <remarks>
    /// Auto-generated field.
    /// To modify move field declaration from designer file to code-behind file.
    /// </remarks>
    protected global::System.Web.UI.HtmlControls.HtmlForm Form1;

虽然我希望看到以下内容:

    protected global::System.Web.UI.HtmlControls.HtmlForm Form1;
    protected global::System.Web.UI.WebControls.Button Button3;
    etc, etc

(不介意命名,当然我会给它一些有区别的命名)

如何解决这个问题?我在这个上查了谷歌,但找不到这么快的答案......

【问题讨论】:

  • 好吧,你总是可以降级到 VS2003 和 ASP.NET 1.1 以摆脱 .designer.cs 文件。你为什么要这样做超出了我的想象。生成文件中的多余 cmets(您甚至不应该阅读)不会对已编译的应用程序造成任何影响。
  • 但它可能会干扰任何文档规则...
  • 是的,您可以关闭 Designer.cs 文件。方法如下:stackoverflow.com/questions/13867779/…

标签: c# asp.net designer auto-generate


【解决方案1】:

您可以阅读 cmets,它们会告诉您该怎么做。

将声明移动到您的代码隐藏并删除设计器文件。

但我必须做一个观察:

这种担忧的表达,尤其是试图消除 VS 向您展示的善意所付出的努力,掩盖了某种程度的天真和缺乏经验。

也许你的时间会花在编码上? ;-)

【讨论】:

  • 但是,例如,当我添加另一个文本框时,会不会没有创建设计器文件?
  • 我认为@code 诗人的意思是您完全停止在 ASPX(标记)中添加控件。只能通过后面的代码添加控件。然后不会创建设计器文件,因为您再也不会触摸您的标记文件。
  • @Joris - 好吧,下定决心;您是想要控制自己的标记和代码隐藏的控制狂,还是喜欢偶尔将控件从工具箱拖放到 DESIGNER 的典型? ;-)
  • 关于编码...我宁愿去编码而不是拖放。我忘了说,但我想自己控制它并自己编码设计的原因是因为设计师在可用性方面失败了。在 formdiv 中添加一个简单的文本框和其他文本框有时真的很痛苦,而添加一个“硬编码”文本框(在这种情况下)要简单得多(因此也更快)...... @scherland -好的,这很好,只是我不能再使用设计器了。有时还是很方便的……
【解决方案2】:

我不确定您是否可以禁用此文件的自动生成。这样做也不是个好主意......如果你真的想要(需要?)干扰它,我宁愿寻找一种方法来改变它的行为/格式。不幸的是,我也无法为此提供解决方案/提示。不过,您可能需要查看“自定义工具”(用于代码生成)领域。

为什么您对文件的格式如此不满意?我几乎从不看它 :) 根据 Scott Guthrie 的说法,设计器文件已在 VS 2005 中作为“允许 Visual Studio 编写‘丑陋’代码的地方”:Tutorial 2: Code-Behind with VS 2005 Web Application Projects

编辑:也许 Scott Hanselman 的这篇文章可以提供帮助? T4 (Text Template Transformation Toolkit) Code Generation - Best Kept Visual Studio Secret.

【讨论】:

    猜你喜欢
    • 2015-05-11
    • 2013-07-12
    • 2010-09-16
    • 2011-04-01
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多