gpt4 book ai didi

c# - T4 获取枚举成员的值

转载 作者:行者123 更新时间:2023-12-02 21:44:04 25 4
gpt4 key购买 nike

我正在尝试生成一个带有适当枚举的 typescript 接口(interface)类。

我被困在如何获取枚举成员的值上。

Enum.Members 获取的是 CodeElements,而不是 CodeProperties,如果我尝试进行强制转换,它就会中断。它还与 CodeEnum 发生冲突。

我想要做的是获取值,以便它是显式的 value1 = 1、value2= 2 等,而不仅仅是 value1、value2,因为枚举可能不是基于 0 的。

任何帮助将不胜感激。

最佳答案

CodeElements”听起来好像您正在使用 EnvDTE 接口(interface)来访问您的枚举。如果是这样,则所有枚举项都位于 EnvDTE.CodeEnum 类型的 Members-Property 中。它们的类型为 EnvDTE.CodeVariable,显式值存储在变量的 InitExpression 中。

看看这个枚举:

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

这个 T4 CodeSnippet 反射(reflect)了枚举:

    <#
// 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

希望有帮助。

关于c# - T4 获取枚举成员的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19849389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com