5

私はC#でWPFアプリケーションを使用しています。静的クラスで次のように定義された定数がいくつかあります。

プロジェクト1:

namespace MyCompany
{
   public static class Constants
   {
      public static int MY_CONSTANT = 123456;
   }
}

次に、プロジェクト1内の任意の場所で定数にアクセスするために必要なのは次のとおりです。

int x = Constants.MY_CONSTANT;

次に、同じソリューションに別のプロジェクトを追加し、同じルート名前空間を使用します。

プロジェクト2

namespace MyCompany.MyControl
{
   class VideoControl
   {
      int x;
      x = Constants.MY_CONSTANT; //<-- doesn't work
      x = MyCompany.Constants.MY_CONSTANT; //<-- doesn't work either
   }
}

2番目のアセンブリから静的定数クラスにアクセスする方法がわかりません。また、循環依存につながるため、最初のアセンブリへの参照を追加することはできません(2番目のプロジェクトアセンブリは、最初のプロジェクトアセンブリで使用されるWPFコントロールです)。

私がやろうとしていることは可能ですか?現在、私の回避策はコンストラクターで必要なすべての定数を渡すことですが、直接アクセスしたいだけです。

4

3 に答える 3

2

すべての静的定数をプロジェクト1からプロジェクト2に移動できるため、すべての定数はプロジェクト1とプロジェクト2の両方に表示されます。他のすべてのプロジェクトで共有されているすべてのものを管理するのに役立つ可能性のある別のプロジェクト(おそらく一般的)を導入することをお勧めします。これは一般的なインフラストラクチャプロジェクトです。

于 2012-06-21T06:33:00.223 に答える
0

プロジェクト1の参照をプロジェクト2に追加する必要があります。そうすれば、正常に機能するはずです。その方法を説明するためのグラフィックが必要ですか?

これがMSDNリンクですhttp://msdn.microsoft.com/en-us/library/wkze6zky.aspx

そして、これが写真付きのSOの答えです> VisualStudio2010のプロジェクトにプロジェクトを追加する

于 2012-06-21T03:18:46.043 に答える
0

もう1つの答えは近いですが、実際にはその逆です。プロジェクト2にはプロジェクト1への参照が必要です。その後、コードをコンパイルする必要があります。

編集:

申し訳ありませんが、あなたはすでにこれを検討しているようです。はい、誰かが3番目のアセンブリを導入することで循環依存の問題を回避するようにコメントしました。

于 2012-06-21T03:31:13.277 に答える