Web.config的system.web / Pages / Namespaces标签有什么意义?

时间:2012-03-29 15:48:07

标签: c# asp.net asp.net-4.0

无论我的机器的根网络配置(Windows / Microsoft.NET / ...中的配置)是否包含system.web/pages/namespaces/add元素,仍然要求我在每个aspx.cs CodeBehind文件上包含using语句。为什么?它不应该编译而不是抱怨它无法理解页面是什么?毕竟,根{000}中存在<add namespace="System.Web" />

3 个答案:

答案 0 :(得分:9)

system.web/pages/namespaces/add元素用于.ASPX个文件,普通.CS个文件(包括.ASPX.CS)仍然需要正确using,因为没有预先编译前处理源代码。因此.ASPX.CS必须是有效的CS文件,包括所有using Namespace声明。

答案 1 :(得分:7)

这会为您的aspx和ascx文件添加名称空间,这样您就不必包含<%@ Import Namespace="MyNameSpace" %>语句。

来自documentation on MSDN

  

namespaces元素定义了一个import指令集合   在汇编预编译期间使用。该属性对应于   ASP.NET页面上的@ Import指令。 @ Import指令允许   您可以指定自动导入到所有名称空间的名称空间   应用程序的页面。

您的代码隐藏不受这些web.config条目的影响。

答案 2 :(得分:5)

此处的其他答案表明此web.config设置仅影响ASPX页面,而不影响ASPX.CS等代码隐藏页面。我刚刚在一个针对.NET 4.0的ASP.NET网站上对此进行了测试,并且发现这对于C#页面来说是正确的,但对于VB页面则不然。

在web.config设置中添加命名空间,无需在每个ASPX.VB页面的顶部列出它。

我会对任何理论感兴趣。我原以为它会对文件后面的ASPX.CS和ASPX.VB代码起作用。

相关问题