如何在 C# Pulumi Azure Native 中将堆栈配置字符串解析为 EnumType 结构

How to parse stack configuration string to EnumType struct in C# Pulumi Azure Native

正在尝试从堆栈设置文件 (Pulumi.dev.yaml) 获取资源参数并使用配置值创建资源,例如 StorageAccount。对于 SkuNameKind,正在使用 readonly struct(为什么不枚举???)如果它们是 enum 类型,我可以很容易地从字符串(堆栈配置字符串)中解析value) 使用 Enum.Parse(EnumType, "stringValue").

枚举

如何将堆栈配置字符串值解析为 (EnumType) 结构?。我错过了什么吗?有没有更好的方法来实现?

(.Net SDK 使用 ExpandableStringEnum: ExpandableStringEnum<SkuName>SkuName)

目前没有直接的方法可以做到这一点。您必须回过头来进行反思才能完成这项工作:

public static T ParseEnum<T>(string value)
{
    return (T)typeof(T).GetProperty(value)?.GetValue(null);
}

// Usage example
var sku = ParseEnum<SkuName>("Standard_LRS");

this issue 有改进,请点赞。