2012-11-28 2 views
5

これを行うには、これを行う方法があるか、実行時にしか利用可能なweb.configsがありません。asp.net c#でweb.configキー値のペアをコンパイル時定数として使用できますか?

のAppSettings:

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

コード:

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

あなたは静的変数を作成しませんか? – MMK

+0

これは、mvcアプリケーションでLogonAuthorize Attributeタグにconst値を使用する必要があるという事実に基づいています。 – Rayshawn

答えて

10

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

appsettingsの値は実行時までわからないため、定数値ではありません。代わりにあなたが

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

静的な読み取り専用の値を使用することができます違いは、値がコンパイル時にinterperetedされる方法です。定数を使用すると、変数MyStringではなく、実際の値が参照されます。 static readonlyの値が変数としてコンパイルされます。

+0

必ずしも読み込み専用ではないと思います。 – MMK

+0

'readonly'は値の変更を防ぎます。 「定数」に類似している。 –

+0

基本的には、キー値のペアでconst文字列を使用することはできませんが、これは最も近い答えです。 – Rayshawn

関連する問題