无法从其StringValue属性解析为枚举对象。
枚举:
public enum StatusColor
{
[StringValue("#FFFFFF")]
None,
[StringValue("#5DB516")]
Green,
[StringValue("#F3212A")]
Red,
[StringValue("#FFFFFF")]
White
}
解析尝试1
string inputHtmlColor = "#F3212A"; // input
StatusColor outColor; // output
Enum.TryParse(inputHtmlColor , true, out outColor);
解析尝试2:
string inputHtmlColor = "#F3212A"; //input
StatusColor outColor = Enum.Parse(typeof(StatusColor), inputHtmlColor, true);
这两个代码都不起作用,代码始终选择
StausColor.None
(第一个)。如何获得正确的StatusColor
枚举对象? 最佳答案
应该这样做:
public StatusColor GetColor(string color)
{
return
Enum.GetValues(typeof(StatusColor))
.Cast<StatusColor>()
.First(x => ((StringValueAttribute)typeof(StatusColor)
.GetField(x.ToString())
.GetCustomAttribute(typeof(StringValueAttribute))).Value == color);
}