Pregunta

Estoy intentando generar una clase de interfaces mecanografiadas completa con enumeraciones adecuadas.

Estoy atascado en cómo obtener el valor del miembro de enumeración.

Enum.Members obtiene CodeElements, no CodeProperties y si intento lanzarlo, se rompe.También rompe con CodeEnum.

Lo que intento hacer es obtener el valor para que sea explícito con valor1 = 1, valor2 = 2, etc.en lugar de solo valor1, valor2 porque las enumeraciones pueden no estar basadas en 0.

Cualquier ayuda sería muy apreciada.

¿Fue útil?

Solución

"CodeElements"Suena como si estuviera utilizando las interfaces Envdte para obtener acceso a sus enumeraciones. Si es así, todos los elementos de enumeros están en el Members-Propertía del EnvDTE.CodeEnum escribe. Ellos son de tipo EnvDTE.CodeVariable y el valor explícito se almacena en el InitExpression de la variable.

Eche un vistazo a este enum:

    // C# Enum to reflect 
    public enum MyEnum { Hi = 10, There = 15 }

Y este T4 Codesnippet que refleja el enum:

    <#
      // the enumeration object you already seem to have
      EnvDTE.CodeEnum theEnum;

      // iterate all enumeration items
      foreach(EnvDTE.CodeVariable variable in theEnum.Members)
      {
          // render name and value
          #><#= variable.Prototype #> = <#= variable.InitExpression.ToString() #>
    <#}
    #>

Debería dar lugar a:

    Hi = 10
    There = 15

Espero que ayude.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top