文件夹 App_Code 内的 C# 访问类

Posted

技术标签:

【中文标题】文件夹 App_Code 内的 C# 访问类【英文标题】:C# Access Class Inside a Folder App_Code 【发布时间】:2013-10-10 11:42:47 【问题描述】:

我是 C# 新手,我正在创建一个新的 Web 应用程序。像往常一样,我创建了一个应用程序通常使用的公共函数库。

我使用 VS.net 2008,我创建了一个项目新项目,其结构如下: 根 --App_Code 全局类.cs --脚本 默认.aspx 默认.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

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

所有这些方法都给了我“类型或名称空间名称 'caseGlobal' 不存在于名称空间 'sgmedcs' 中(您是否缺少程序集引用?)”

我缺少什么,感谢您的帮助。

【问题讨论】:

我认为如果您将命名空间更改为命名空间 sgmedcs 它应该可以解决您的问题。 【参考方案1】:

进入类的属性,将 Build Action 更改为Compile

【讨论】:

我保留命名空间 sgmedsc.globalClass。在 default.aspx 我添加了 sgmedsc.globalClass;正如詹姆斯约翰逊所说,在属性中,我将构建操作更改为编译。谢谢【参考方案2】:

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

【讨论】:

以上是关于文件夹 App_Code 内的 C# 访问类的主要内容,如果未能解决你的问题,请参考以下文章

App_code 文件夹导入初学者

一个类放在App_Code中要用时可以直接找到,但是放在别的文件夹下怎么找不到了,怎么才能找到

ASP.NET 项目 App_Code下无法找到类

MVC 公共类App_Code不识别

关于面对对象过程中的三大架构以及数据访问层(实体类数据操作类)

C#访问项目文件夹内的图像