質問

適切な酵素を備えたタイプスクリプトインターフェイスクラスを生成しようとしています。

Enumメンバーの価値を取得する方法にこだわっています。

enum.membersは、codepropertiesではなくcodelementsを取得し、キャストしようとすると壊れます。また、Codeenumで壊れます。

私がやろうとしているのは、値をvalue1 = 1、value2 = 2などで明示するように値を取得することです。enumsが0ベースではない可能性があるため、Value1、value2の代わりに値が表示されます。

どんな助けも大歓迎です。

役に立ちましたか?

解決

"CodeElements「まるでenvdteインターフェイスを使用して列挙にアクセスできるように聞こえます。もしそうなら、すべての列挙アイテムは Members- のプロパティ EnvDTE.CodeEnum タイプ。それらはタイプです EnvDTE.CodeVariable そして、明示的な値はに保存されます InitExpression 変数の。

この列挙を見てください:

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

そして、このT4 CODESNIPPETは列挙を反映しています:

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

結果は次のとおりです。

    Hi = 10
    There = 15

それが役立つことを願っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top