2012-11-28 11 views
5

Próbuję zrobić to poniżej, czy istnieje sposób, aby to zrobić, czy też web.configs są dostępne tylko w czasie wykonywania, ponieważ otrzymuję komunikat o błędach czerwonej linii, który musi być stałą czasu kompilacji?Czy para wartości klucza web.config może być używana jako stała czasowa kompilacji w asp.net C#?

AppSettings:

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

Kod:

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

dlaczego nie tworzysz zmiennej statycznej ??? – MMK

+0

Jest to oparte na fakcie, że muszę użyć wartości stałej dla znacznika LogonAuthorize Attribute w aplikacji mvc. – Rayshawn

Odpowiedz

10

problemem jest wykorzystanie const. const oznacza, że ​​wartość jest zakodowana w czasie projektowania.

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

wartość appsettings nie jest znana do czasu wykonania, więc nie jest stała wartość. zamiast tego można użyć statycznej wartości tylko do odczytu, tylko różnicę określa sposób interpretowania wartości w czasie kompilacji. gdy używana jest stała, odwołuje się do wartości rzeczywistej, a nie do zmiennej MyString. wartość static readonly jest skompilowana jako zmienna.

+0

niekoniecznie tylko do odczytu. – MMK

+0

'readonly' zapobiega zmianie wartości. podobne do "stałej". –

+0

, więc w zasadzie nie można użyć stałego ciągu z parą klucz-wartość, ale jest to najbliższa odpowiedź. – Rayshawn

Powiązane problemy