我正在尝试使用正确的枚举生成一个打字稿接口类。
我坚持如何获得枚举成员的价值。
Enum.Members获取CodeElements,而不是CodeProperties,如果我尝试施放,它会中断。它也打破了CodeEnum。
我要做的是获取值,使其显式为value1 = 1,value2 = 2等,而不仅仅是value1,value2,因为枚举可能不是基于0的。
非常感谢任何帮助。
答案 0 :(得分:5)
“CodeElements
”听起来好像您正在使用EnvDTE接口来访问您的枚举。如果是,则所有枚举项都在Members
- EnvDTE.CodeEnum
类型的属性中。它们的类型为EnvDTE.CodeVariable
,显式值存储在变量的InitExpression
中。
看看这个枚举:
// C# Enum to reflect
public enum MyEnum { Hi = 10, There = 15 }
这个反映Enum的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
希望有所帮助。