1

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

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

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

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

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

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

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

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

4

4 回答 4

3

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

在此处输入图像描述

于 2012-11-01T07:37:33.667 回答
1

尝试使用 xsite.App_Code.Bottle

于 2012-11-01T07:34:26.893 回答
0

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

于 2012-11-01T09:07:22.870 回答
0

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

  1. 将命名空间声明放在 App_Code 文件夹中的文件中,而不是代码隐藏文件中。(不必在该命名空间中包含“App_code”)
  2. 确保枚举声明是“公开的”
  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
于 2015-11-18T20:16:41.773 回答