Ich möchte eine Enumeration mit CodeDom API
erstellen. Ich habe im Internet genug gesucht und Ergebnisse erzielt, die kaum nützlich sind.erstellen Enumeration mit .NET CodeDom
Was ich erzeugen will, ist
public enum bug_tracker_type
{
[Description("Bugzilla")]
Bugzilla,
[Description("Debbugs")]
Debbugs,
[Description("PHP Project Bugtracker")]
PHP_Project_Bugtracker,
[Description("Google Code")]
Google_Code
}
I CodeTypeDeclaration
verwendet und stellen Sie es IsEnum
Eigenschaft als wahr, einen Namen erstellt, und legen Sie es Attribute ist.
Jetzt ist das größte Problem, wie man den Körper bevölkert?
Ich versuchte
CodeTypeMember mem = new CodeTypeMember();
mem.Name = WadlSharpUtils.CreateIdentifier(discreteValue.value);
mem.CustomAttributes.Add(new CodeAttributeDeclaration(discreteValue.value));
// enumCandidate is an instance of CodeTypeDeclaration
enumCandidate.Members.Add(mem);
Obwohl der Verwendung dieser Lösung habe ich die Beschreibung Attribute erzeugen kann, wäre das Ende der Linie ;
sein und nicht ,
Schön gesagt - es ist nicht besonders offensichtlich, dass enums tatsächlich eine Art von CodeMemberField sind. Nützliche Informationen in anderen Zusammenhängen! –
Einverstanden, sehr schön hin. Die Tatsache, dass die Werte für eine Enumeration Felder sind, rührt wahrscheinlich davon her, wie sie tatsächlich in der .Net-Binärdatei gespeichert sind, als eine Menge von statischen Feldern mit einem konstanten Wert. –