我们有一个asp.net自定义控件,用于我们的webforms asp.net项目。我重命名了一个控件的属性,并希望在这个属性被用作属性的地方得到一个编译时错误,但它不会发生。为什么会这样?
答案 0 :(得分:2)
在编译时甚至在运行时,ASP.NET标记实际上不是模式检查的。你完全有权写下你喜欢的任何旧标签汤 - 除非你明确做一些没有意义的事情,否则ASP.NET不会抱怨。
<asp:Label runat="server" fjsdkfj="sdjkfldskfls">Hello</asp:Label>
将上述内容放在aspx
上,您在编译时也不会抱怨,甚至在运行时也不会抱怨 - 您只会得到
<span fjsdkfj="sdjkfldskfls">Hello</span>
发送到浏览器。但是,做
<asp:Label runat="server" fjsdkfj="sdjkfldskfls" Height="ohdear">Hello</asp:Label>
并且在运行时,您将收到解析器错误,因为ASP.NET会尝试将ohdear
转换为高度值。
要更早地找到第二种类型的错误,可以使用ASP.NET预编译。为了找到第一类错误,除了测试之外别无他法 - 甚至ReSharper似乎也没有提供任何有用的检查。