2013-10-03 153 views
4

Im新的C#和即时通讯创建一个新的Web应用程序。像往常一样,我创建了一般应用程序使用的公共函数库。C#访问类内的文件夹App_Code

进出口使用VS.net 2008年,我创建了一个项目新项目里的跟随着结构: 根 --App_Code globalClass.cs --scripts Default.aspx的 Default.aspx.cs

我需要在App_Code/globalClass.cs中导入/使用globalClass 在Default.aspx或任何其他的代码后面。

这是App_Code文件/ globalClass.cs

using System; 
using System.Collections; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 
using System.Web.UI.WebControls; 
using System.Configuration; 
using System.Data; 
using System.Data.SqlClient; 


namespace sgmedcs.globalClass 
{ 
    public class claseGlobalX : System.Web.UI.Page 
    { 
     //HttpContext httpActual = HttpContext.Current; 

     public string cargarSQL(string queryStr, string queryType) 
     { 
      //Scripting 
     } 
    } 
} 

我也用作命名空间sgmed.App_Code.globalClass和内容sgmedcs.​​AppCode.globalClass

在Default.aspx.cs我添加使用sgmedcs.​​globalClass;或者使用sgmed.App_Code.globalClass;或使用sgmedcs.​​AppCode.globalClass

所有这些方法给了我“的类型或命名空间名称claseGlobal'在命名空间‘sgmedcs’不存在(是否缺少程序集引用?)”

什么即时失踪,感谢您的帮助。

+0

我想如果你改变命名空间到命名空间sgmedcs它应该可以解决你的问题。 –

回答

14

进入该类的属性,并将生成操作更改为Compile

+1

这一步解决了我的问题,谢谢 –

+0

我保留命名空间sgmedsc.globalClass。 而在default.aspx中我添加了sgmedsc.globalClass; 在属性中,我改变了编译的构建行为,就像詹姆斯约翰逊所说的那样。 谢谢 –

0

另外值得一提的是:如果你的项目是一个“网站”而不是“web应用程序”,那么属性中没有构建动作选项。但是,由于各种原因可能会出现相同的错误。其中一个就是给App_Code类提供一个名称空间,另一个文件不是用包含名称空间的完全限定名称引用它。另一种情况是,您尝试使用该类的页面位于子目录中,在IIS上,该子目录被标记为应用程序,该应用程序为其提供了一个完全独立的上下文,其中父目录的App_Code目录中的类不可访问。在这种情况下,你需要删除子应用程序,或者,如果你需要的话,给它自己的App_Code目录和必要的类。

相关问题