我正在尝试生成一个带有适当枚举的打字稿接口类。
我被困在如何获得枚举成员的价值上。
Enum.Members 获取 CodeElements,而不是 CodeProperties,如果我尝试强制转换,它就会中断。它也与 CodeEnum 中断。
我想要做的是获取值,以便它使用 value1 = 1, value2= 2 等来明确,而不仅仅是 value1, value2 因为枚举可能不是基于 0 的。
任何帮助将不胜感激。
" CodeElements
" 听起来好像您正在使用 EnvDTE 接口来访问您的枚举。如果是这样,所有枚举项都在类型的Members
-Property 中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
希望有帮助。