5

私はこれを以下で行おうとしていますが、これを行う方法はありますか、またはweb.configsは実行時にのみ使用できますか?コンパイル時定数でなければならないという赤い線のエラーが発生するためですか?

AppSettings:

  <add key="MyString" value="TheValueOfTheString"/>

コード:

   public const string MyString = ConfigurationManager.AppSettings["MyString"];
4

1 に答える 1

10

問題はconstの使用です。constは、値が設計時にハードコーディングされていることを意味します。

const string MyString = "the text...";

appsettings値は実行時までわからないため、定数値ではありません。代わりに、静的な読み取り専用値を使用できます

static readonly MyString = ConfigurationManager.AppSettings["MyString"];

違いは、コンパイル時に値がどのように相互作用するかです。定数が使用される場合、変数ではなく実際の値が参照されますMyString。値はstatic readonly変数としてコンパイルされます。

于 2012-11-28T15:21:23.160 に答える