Domanda

Sto cercando di generare una classe di interfacce dattiloscritte completa di enum adeguate.

Sono bloccato su come ottenere il valore del membro Enum.

Enum.members ottiene codeelement, non codeproperties e se provo a lanciare, si rompe. Si rompe anche con codeenum.

Quello che sto cercando di fare è ottenere il valore in modo che sia esplicito con valore1 = 1, valore2 = 2 ecc. Invece di valore1, valore2 perché gli enum potrebbero non essere basati su 0.

Qualsiasi aiuto sarebbe molto apprezzato.

È stato utile?

Soluzione

"CodeElements"Sembra che tu stia usando le interfacce EnvDTE per accedere alle enumerazioni. In tal caso, tutti gli elementi enum si trovano in Members-Property of the EnvDTE.CodeEnum genere. Sono di tipo EnvDTE.CodeVariable e il valore esplicito è memorizzato nel InitExpression della variabile.

Dai un'occhiata a questo enum:

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

E questo T4 CodesNippet che riflette l'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() #>
    <#}
    #>

Dovrebbe provocare:

    Hi = 10
    There = 15

Spero possa aiutare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top