Quiero crear una enumeración usando CodeDom API
. He buscado lo suficiente en internet y obtengo resultados que apenas sirven de nada.creando enumeración usando .NET CodeDom
Lo que quiero es generar
public enum bug_tracker_type
{
[Description("Bugzilla")]
Bugzilla,
[Description("Debbugs")]
Debbugs,
[Description("PHP Project Bugtracker")]
PHP_Project_Bugtracker,
[Description("Google Code")]
Google_Code
}
que utilizan CodeTypeDeclaration
y establecer que es IsEnum
propiedad como verdadera, crearon un nombre y establezca sus atributos.
Ahora el mayor problema es cómo poblar el cuerpo?
me trataron
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);
Aunque el uso de esta solución que puedo generar los Descripción atributos, al final de la línea sería ;
y no ,
miembros
Bien puesto - no es particularmente obvio que las enumeraciones son de hecho un tipo de CodeMemberField. ¡Información útil en otros contextos! –
De acuerdo, muy bien puesto. El hecho de que los valores de una enumeración sean campos probablemente se debe a la forma en que están realmente almacenados en el binario .Net, como un conjunto de campos estáticos con un valor constante. –