我正在尝试生成一个带有适当枚举的typescript接口类.
我坚持如何获得枚举成员的价值.
Enum.Members获取CodeElements,而不是CodeProperties,如果我尝试投射,它会中断.它也打破了CodeEnum.
我正在尝试做的是获取值,使其显式为value1 = 1,value2 = 2等,而不仅仅是value1,value2,因为枚举可能不是0.
任何帮助将不胜感激.
" CodeElements"听起来好像您正在使用EnvDTE接口来访问您的枚举.如果是这样,所有枚举项都在Members该EnvDTE.CodeEnum类型的-Property中.它们属于类型EnvDTE.CodeVariable,显式值存储在InitExpressionVariable中.
看看这个枚举:
// C# Enum to reflect
public enum MyEnum { Hi = 10, There = 15 }
Run Code Online (Sandbox Code Playgroud)
这个反映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() #>
<#}
#>
Run Code Online (Sandbox Code Playgroud)
应该导致:
Hi = 10
There = 15
Run Code Online (Sandbox Code Playgroud)
希望有所帮助.