Frage

Ich versuche, eine Typscript -Schnittstellenklasse mit ordnungsgemäßen Aufzüge zu generieren.

Ich bin festgefahren, wie ich den Wert des Enum -Mitglieds erhalten kann.

Enum.MEMMBERS erhält CodeElements, nicht CodeProperties, und wenn ich versuche, zu werfen, bricht es. Es bricht auch mit Codeenum.

Ich versuche den Wert so zu erhalten, dass er mit Value1 = 1, Value2 = 2 usw. explizit ist.

Jede Hilfe wäre sehr geschätzt.

War es hilfreich?

Lösung

"CodeElements"Klingt so, als würden Sie die Envdte -Schnittstellen verwenden, um Zugriff auf Ihre Aufzählungen zu erhalten. Wenn ja, sind alle Enum -Elemente in der Members-Property der EnvDTE.CodeEnum Typ. Sie sind vom Typ EnvDTE.CodeVariable und der explizite Wert wird in der gespeichert InitExpression der Variablen.

Schauen Sie sich diesen Auflauf an:

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

Und dieses T4 -Codesnippet, das den Enum widerspiegelt:

    <#
      // 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() #>
    <#}
    #>

Sollte dazu führen:

    Hi = 10
    There = 15

Ich hoffe, das hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top