2010-11-14 44 views
1

我对asp.net环境比较陌生。将通用命名空间从web.config应用到app_code类文件

最近工作的一个项目,我发现了一个问题

即我不得不使用system.io在任何页面添加到所有文件的功能。同样对于使用SQL函数 即该命名空间的任何方法必须要全部使用像

System.IO.FileStream fs = null; 

代替

FileStream fs = null; 

因此,在短期它不仅需要更多的输入时,它也很难记住某些方法背后的名称空间。

但是,我找到了一个解决方案。

通过添加web.config中的以下部分,我的所有网页自动访问该命名空间

<namespaces> 

     <add namespace="System.Data"/> 
     <add namespace="System.Data.SqlClient"/> 
     <add namespace= "MySql.Data.MySqlClient"/> 
     <add namespace="System.IO"/> 
</namespaces> 

已经整理出了上述问题。我现在正面临一个新的问题。我的应用程序在app_code文件夹中有许多代码页。 在App_Code文件夹,我的所有网页都需要下面的头

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI.WebControls; 
using System.IO; 

有人可能会感到困惑,为何放置在web.config中声明不工作放在此文件夹中的类。它们是同一个Web应用程序的一部分。现在我必须在所有文件中照顾这一点。

如果能分享关于如何在app_code文件夹中具有公共名称空间的信息,我会很感激。

回答

0

你不能,根据文档的using directive是每个文件:

using指令的范围仅限于在它出现的文件。

但是有一个快捷方式将所需的使用指令添加到文件。
如果你输入的东西是不是在目前使用的你得到的第一个字母下一个蓝色的下划线有移动鼠标并点击弹出菜单(或按CTRL + ),在菜单中选择“使用...”,Visual Studio会自动在文件顶部插入正确的using语句。

+0

是的,我想这只是要走的路。 – arvind 2010-11-15 06:22:01

0

我相信这是由于App_Code的特殊性质。由于App_Code中的文件通常是类文件(即不是webforms,用户控件等,只是代码文件),它们都是使用特定语言编译器(csc.exe或vbc.exe)编译的。项目中的其他页面(这次是所有的webforms等等)都是用ASP.NET编译器编译的,ASP.NET编译器考虑了web.config文件的内容。