驻留在App_Code中的类不可访问

我在ASP.NET中创build了一个网站,并创build了一个类,并把它放在App_Code文件夹中。 但是我不能从我的其他页面访问这个。 有什么需要configuration来允许这个? 我已经在以前的项目中工作,但不知道在这个项目中。

namespace CLIck10.App_Code { public static class Glob { ... } } 

右键单击App_Code文件夹中的.cs文件并检查其属性。

确保“生成操作”设置为“编译”。

把它放在你想访问类的其他文件的顶部:

 using CLIck10.App_Code; 

或从这样的其他文件访问类:

 CLIck10.App_Code.Glob 

不知道这是你的问题,但如果你是C#新手,那么这是一个容易被绊倒。

更新:我最近发现,如果我添加一个App_Code文件夹到一个项目,那么我必须closures/重新打开Visual Studio,以正确识别这个“特殊”文件夹。

转到您要访问App_code类的页面,然后添加app_code类的名称空间。 您需要提供using说明,如下所示:

 using WebApplication3.App_Code; 

之后,您需要转到app_code类属性并将“构build操作”设置为“编译”。

确保您使用的是与您的页面相同的名称空间

我还没有弄清楚为什么会出现这种情况,但是我的App_Code文件夹中有一些相互调用方法的类,在构build.NET 4.5.2项目时做得很好,但之后我将其恢复到4.0,因为目标服务器未升级。 那是当我发现这个问题(固定在我的web.config中的langversion从6到5 …另一个故事)….

我的一个方法一直有一个错误,如:

 The type XY conflicts with the imported type XY in MyProject.DLL 

我们所有的类已经被设置为“编译”在他们的属性,如在这里接受的答案build议,每个都有一个共同的命名空间是相同的,每个都using MyNamespace; 在每个class级的顶部。

我发现,如果我只是将不得不相互调用方法的违规类移动到另一个名为“App_Code”以外的标准文件夹,他们就不再有这个冲突问题。

注意 :如果您创build了一个名为“AppCode”的标准文件夹,请将您的类移入其中,删除“App_Code”文件夹,然后将“AppCode”重命名为“App_Code”,您的问题将会返回。 如果使用“新build文件夹”或“添加ASP .NET文件夹”选项来创build“App_Code”,它似乎没有关系 – 它似乎键入名称。

也许这只是一个.NET 4.0(也可能是更早)的问题…在4.5.2之前,我还好好恢复!

我发现将文件移动到单独的类库项目中,然后在Web项目中引用该项目,并在文件的using部分中应用命名空间更为简单。 由于某种原因,其他解决scheme并不适合我,但是这个解决方法。

就我而言,我无法使用App_Code文件夹中定义的类来构build项目。

不能复制的情况正好发表评论,但不得不closures,并重新打开视觉工作室的intellisense合作同意…

我注意到,当App_Code文件夹中的类被设置为“编译”而不是“内容”(右键单击它)错误来自类的第二个版本…看看最左边的代码窗格和选项卡之间的3个字段中的3个。 另一个被称为10_App_Code或类似的东西。

为了解决这个问题,我把文件夹从App_Code重命名为Code,在类上显式地设置了命名空间,并将所有的类设置为“Compile”