2013-10-24 7 views
7

Ich versuche, die Beschreibung einer Enumeration aus der Resx-Datei zu ziehen, aber ich bekomme den obigen Fehler.Ein Attributargument muss ein konstanter Ausdruck, Typof Ausdruck oder Arrayerstellungsausdruck eines Attributparametertyps sein t enum Beschreibung

Hier ist mein Code:

public enum FinalStatus 
{ 
    [Description(StringResources.MyStrings.Status_0)] 
    Error = 0, 
    [Description(StringResources.MyStrings.Status_1)] 
    Ok = 1, 
    [Description(StringResources.MyStrings.Status_5)] 
    Warning = 2, 
    [Description(StringResources.MyStrings.Status_4)] 
    Unknown = 3 
} 

Antwort

7

Der Fehler ist korrekt; Diese Werte müssen Konstanten sein. Sie müssen Ihre Status_n Definitionen zu etwas mehr wie folgt ändern:

namespace StringResources{ 
    public class MyStrings{ 
     public const string Status_0 = "0"; 
     public const string Status_1 = "1"; 
     public const string Status_4 = "4"; 
     public const string Status_5 = "5"; 
    } 
} 
+0

Dank Adam. Aber ich finde Namespace StringResources nicht. Ich habe eine resx Datei in VS und ich sehe das XML-Format von der gleichen: "Fehler:. Benutzeraktion erforderlich Expand Zeile für Details" adelphia

+1

Ich denke, dass Sie diese Werte möglicherweise anders definieren müssen. Ich denke nicht, dass das Bearbeiten des Codes in der Resx-Datei eine gute Idee ist. –