【问题标题】:Public Enum / class could not be accessed / found无法访问/找到公共枚举/类
【发布时间】:2012-11-01 07:32:46
【问题描述】:

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

文件夹中有几个运行良好的类。类可以毫无问题地互相看到。

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

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

问题是文件夹中的所有类都不能使用 Bottle 枚举。当我尝试使用枚举时,出现以下错误:

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

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

知道如何解决这个问题,以便我可以使用 Bottle 枚举吗?

【问题讨论】:

  • 你能发布一个看不到它的最小类吗? class Test{private Bottle _bottle;}Bottle 是您项目的一部分吗?您确定正在部署它吗?

标签: c# asp.net .net enums


【解决方案1】:

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

【讨论】:

  • 完美。这就是问题所在,构建操作由于某种原因被设置为 Content。
【解决方案2】:

尝试使用 xsite.App_Code.Bottle

【讨论】:

    【解决方案3】:

    确保调用类使用或位于与瓶子枚举类相同的命名空间中。在您的班级视图中查看。

    【讨论】:

      【解决方案4】:

      对于像我这样正在阅读本文并且没有 OP 的问题和解决方案的新手...... OP 所做的应该已经奏效,使其发挥作用的关键要素是:

      1. 将命名空间声明放在 App_Code 文件夹中的文件中,而不是 一个代码隐藏文件。 (不必在 那个命名空间)
      2. 确保枚举声明为“public”
      3. 放置一个“使用 myNamespace;”在代码隐藏文件中声明

      我将使用的模式如下所示,因为我觉得这对我来说是最简单的方法:使用我想要的枚举名称;授予我需要的访问权限;将所有内容保存在一个地方以实现可维护性;并在应用程序之间提供足够的隔离,以免我遇到麻烦。如果我的单人团队发展壮大,也应该是可扩展的。

      在 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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-11
        • 2017-10-16
        相关资源
        最近更新 更多