无法访问/找到公共枚举/类

时间:2012-11-01 07:32:46

标签: c# asp.net .net enums

在我的ASP.NET项目中,我有一个App_Code文件夹。

在该文件夹中有几个完美无缺的类。这些课程可以毫无问题地相互看到。

我还在文件夹中添加了一个Enums.cs文件。 Enums.cs文件包含以下代码:

namespace xsite.App_Code
{
  public enum Bottle
  {
    Glass,
    Plastic,
    Paper
  }
}

问题是文件夹中没有类可以使用Bottle枚举。当我尝试使用枚举时,我收到以下错误:

找不到类型或命名空间名称'Bottle'(您是否缺少using指令或程序集引用?)

文件夹中类的命名空间与枚举相同。

我知道如何解决这个问题,所以我可以使用Bottle enum吗?

4 个答案:

答案 0 :(得分:3)

如果您无法通过xsite.App_Code.Bottle访问枚举,则必须检查文件的属性。右键单击该文件并获取属性。将有一个名为Build Action的属性,将其设置为Compile

enter image description here

答案 1 :(得分:1)

尝试使用xsite.App_Code.Bottle

答案 2 :(得分:0)

确保调用类使用或与bottle枚举类位于同一名称空间中。查看课堂视图以查看。

答案 3 :(得分:0)

对于新手 - 就像我一样 - 正在阅读本文并且没有OP的问题和解决方案...... OP所做的应该有什么作用以及制作它的关键要素工作是:

  1. 将名称空间声明放在App_Code文件夹中的文件中,而不是 代码隐藏文件。 (没有必要包含' App_code' in 那个名称空间)
  2. 确保枚举声明为' public'
  3. 使用myNamespace放置''代码隐藏文件中的声明
  4. 我将要使用的模式如下所示,因为我觉得这对我来说是最简单的方法:使用我想要的枚举名称;提供我需要的访问权限;将所有东西放在一个地方以保持可维护性并在应用程序之间提供足够的隔离,以免让我摆脱困境。如果我的一个人团队成长,也应该是可扩展的。

    在App_Code \ SiteEnums.cs中:

    namespace SiteGlobalEnums
    {
      public enum SiteWideValues1
      {
        value1, value1, value3
      }
    
      public enum SiteWideValues2
      {
        value1, value1, value3
      }
    }
    
    namespace AppName1Enums
    {
      public enum AppName1Values1
      {
        value1, value1, value3
      }
    
      public enum AppName1Values2
      {
        value1, value1, value3
      }
    }
    
    namespace AppName2Enums
    {
      public enum AppName2Values1
      {
        value1, value1, value3
      }
    
      public enum AppName2Values2
      {
        value1, value1, value3
      }
    }
    

    在代码隐藏页面中:

    using SiteGlobalEnums;
    using AppName1Enums;  // etc. as needed for apps