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

Make sure that the calling class uses or is in the same namespace as the bottles enum class. Look in your class view to see.

于 2012-11-01T09:07:22.870 に答える
0

私のように、これを読んでいて、OPの問題と解決策を持っていない初心者の場合... OPが機能するはずだったものと、それを機能させるための重要な要素は次のとおりです。

  1. コード ビハインド ファイルではなく、App_Code フォルダー内のファイルに名前空間宣言を配置します。(その名前空間に「App_code」を含める必要はありません)
  2. 列挙型宣言が「public」であることを確認してください
  3. 「using myNamespace;」を入れてください。コード ビハインド ファイルでの宣言

今後使用するパターンは、次のようなものです。これが最も簡単な方法だと思うからです。必要な列挙名を使用します。必要なアクセスを許可します。保守性のためにすべてを 1 か所に保管してください。そして、私がトラブルに巻き込まれないように、アプリ間を十分に分離してください。私の一人のチームが成長した場合にも、拡張可能でなければなりません。

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 に答える