我在ASP.NET中创建了一个网站,并创建了一个类并将其放在App_Code文件夹中.但是我无法从其他页面访问此内容.是否需要配置某些内容以允许此操作?我已经让它在以前的项目中工作,但不是在这个项目中,不知何故.
namespace CLIck10.App_Code
{
public static class Glob
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
Ste*_*McD 614
右键单击.cs
文件App_Code
夹中的文件并检查其属性.
确保"Build Action"设置为"Compile".
Aar*_*nLS 14
将它放在要访问该类的其他文件的顶部:
using CLIck10.App_Code;
Run Code Online (Sandbox Code Playgroud)
或者从其他文件访问该类,如下所示:
CLIck10.App_Code.Glob
Run Code Online (Sandbox Code Playgroud)
不确定这是不是你的问题,但如果你是C#的新手,那么这很容易被绊倒.
更新:我最近发现,如果我将一个App_Code文件夹添加到项目中,那么我必须关闭/重新打开Visual Studio才能正确识别这个"特殊"文件夹.
小智 10
转到要从其访问App_code类的页面,然后添加app_code类的命名空间.您需要提供一份using
声明,如下所示:
using WebApplication3.App_Code;
Run Code Online (Sandbox Code Playgroud)
之后,您需要转到app_code类属性并将"Build Action"设置为"Compile".
我还没有弄清楚为什么会发生这种情况,但是我的App_Code
文件夹中有一些类正在相互调用方法,并且在构建 .NET 4.5.2 项目时可以很好地执行此操作,但是后来我不得不将其恢复为 4.0,因为目标服务器没有升级。那是我发现这个问题的时候(langversion
在我的 web.config 中从 6修复到 5 之后......另一个故事)......
我的一种方法一直有这样的错误:
The type X.Y conflicts with the imported type X.Y in MyProject.DLL
Run Code Online (Sandbox Code Playgroud)
正如此处接受的答案所建议的那样,我的所有类都已在其属性中设置为“编译”,并且每个类都有一个相同的公共命名空间,并且每个类都using MyNamespace;
位于每个类的顶部。
我发现,如果我只是将必须相互调用方法的有问题的类移动到另一个名为“App_Code”以外的标准文件夹中,它们就不会出现此冲突问题。
注意:如果您创建一个名为“AppCode”的标准文件夹,将您的类移入其中,删除“App_Code”文件夹,然后将“AppCode”重命名为“App_Code”,您的问题将再次出现。如果您使用“新建文件夹”或“添加 ASP .NET 文件夹”选项来创建“App_Code”并不重要 - 它似乎键入了名称。
也许这只是 .NET 4.0(可能更早)的问题......我在 4.5.2 中很好,然后不得不恢复!
归档时间: |
|
查看次数: |
123704 次 |
最近记录: |