将web.config中的公共命名空间应用于app_code类文件

时间:2010-11-14 17:45:30

标签: c# asp.net namespaces web-config app-code

我对asp.net环境比较陌生。

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

即。我必须使用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文件夹中使用公共命名空间的信息,我将不胜感激。

2 个答案:

答案 0 :(得分:0)

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

  

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

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

答案 1 :(得分:0)

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