VS2019中如何实例化App_Code文件夹内定义的类?
问题解决与说明
一、编译错误的解决方法
你的代码无法编译主要有两个原因,对应解决方式如下:
命名空间引用问题
HandleRecord类的命名空间是TempDB.App_Code,而Default.aspx.cs在TempDB命名空间下,直接写HandelRecord会找不到类型。解决办法二选一:- 在Default.aspx.cs的顶部添加命名空间引用:
using TempDB.App_Code; - 使用完整命名空间实例化类:
TempDB.App_Code.HandelRecord aHandelRecord = new TempDB.App_Code.HandelRecord();
- 在Default.aspx.cs的顶部添加命名空间引用:
文件编译属性问题
你提到放在App_Code文件夹时需要手动设置Compile选项,这说明你的项目是ASP.NET Web Application类型(而非Web Site类型)。在Web Application项目中,App_Code不是默认的自动编译文件夹,里面的.cs文件默认生成操作是Content,必须手动改为Compile才能被编译:- 右键App_Code文件夹下的HandleRecord.cs → 属性 → 生成操作,选择
Compile。
- 右键App_Code文件夹下的HandleRecord.cs → 属性 → 生成操作,选择
二、App_Code文件夹的合理性分析
是否适合将.cs文件放在App_Code文件夹,取决于你的项目类型:
- 如果是ASP.NET Web Site项目:App_Code是官方推荐的共享类存放位置,系统会自动编译该文件夹下的所有类文件,无需手动设置编译属性,放在这里是合理的。
- 如果是ASP.NET Web Application项目:不建议使用App_Code文件夹。这类项目的编译逻辑是基于文件的生成操作,根目录或自定义类文件夹(如Helpers、Models)下的.cs文件会自动被设置为
Compile,无需手动调整,管理起来更省心。强行用App_Code反而需要额外修改属性,徒增麻烦。
内容的提问来源于stack exchange,提问作者HelloCW
相关产品推荐
相关产品推荐

