C# 与web表单位于同一命名空间中的公共静态类可以';无法解决

C# 与web表单位于同一命名空间中的公共静态类可以';无法解决,c#,asp.net,webforms,namespaces,scope,C#,Asp.net,Webforms,Namespaces,Scope,我有一个webformmvp项目,在App_代码文件夹的一个类中声明了一些扩展方法,这些扩展方法在我的Webform代码中没有解析。Webform和静态类都在同一个名称空间中,但有些东西似乎不起作用 我做了一个快速的样本向你展示这个问题 在App_处上课代码: namespace ecommerce.mvp { public static class Class1 { public static void Test1() { }

我有一个webformmvp项目,在App_代码文件夹的一个类中声明了一些扩展方法,这些扩展方法在我的Webform代码中没有解析。Webform和静态类都在同一个名称空间中,但有些东西似乎不起作用

我做了一个快速的样本向你展示这个问题

在App_处上课代码:

namespace ecommerce.mvp
{
    public static class Class1
    {
        public static void Test1()
        {

        }

    }
}
代码隐藏:

using System;
using System.Collections.Generic;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;


namespace ecommerce.mvp
{
    public partial class pdp : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Class1.Test1(); // <--- This symbol can't be resolved
使用系统;
使用System.Collections.Generic;
使用System.Web.UI;
使用System.Web.UI.HTMLControl;
使用System.Web.UI.WebControl;
名称空间ecommerce.mvp
{
公共部分类pdp:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{

Class1.Test1();//仅仅因为两个类共享同一名称空间,并不意味着如果它们位于不同的程序集/项目中,它们会自动彼此可见

我能看到您出现此问题的唯一方法是
Class1
位于程序集/项目“Foo”(一个虚构的名称)中,而class
pdp
位于程序集/项目“Bar”(另一个虚构的名称)中


要解决此问题,您需要在App_code文件夹中右键单击Class1.cs类并检查其属性。构建操作必须设置为编译(有时设置为内容

我遇到了类似的问题,但是,抱怨的是另一个“项目”。在我的案例中,我发现有一些.cs文件被作为“链接”包含,而我没有在抱怨的项目中将我的新.cs文件作为“链接”包含。希望这可以帮助偶然发现这个问题的人。因此,一句忠告:什么时候出错在“错误列表”中列出,也请检查“项目”列。

它们是否在同一程序集中?如果不是,则包含
Class1
的程序集是否被其他程序集引用?(visual studio项目通常是一个程序集,以防您感到奇怪)通过将类1的定义移动到pdp的同一个文件中来测试它,如果它工作,报告!太好了!它工作得很好!非常感谢!不应该将VS.cs.vb文件设置为“编译”当您从另一个项目复制它或从头开始添加它时会自动执行???默认情况下,应用程序代码类不可用或不可访问。每次您向应用程序代码文件夹添加新类时,您都需要手动设置生成操作OK,但没有任何意义?不,确切地说,在使用W创建的项目中似乎不建议使用应用程序代码eb应用程序项目(它经常在网站项目中使用)。应用程序代码的一个优点是,您可以在运行时在Bin文件夹中找到它。