62,243
社区成员




//是 否
public enum IsOrNot
{
//否
[Description("No")]
No = 0,
//是
[Description("Yes")]
Yes = 1
}
static void Main(string[] args)
{
string json = "{\"id\":1,\"name\":\"hello\",\"state\":0}";
var q = JsonConvert.DeserializeObject<dynamic>(json);
var r = ((IsOrNot)q.state).GetDescription();
Console.WriteLine(r); //No
string json1 = "{\"id\":1,\"name\":\"hello\",\"state\":1}";
var q1 = JsonConvert.DeserializeObject<dynamic>(json1);
var r1 = ((IsOrNot)q1.state).GetDescription();
Console.WriteLine(r1); //Yes
Console.ReadLine();
}
//是 否
public enum IsOrNot
{
//否
[Description("No")]
No = 0,
//是
[Description("Yes")]
Yes = 1,
}
public static string GetDescription(this Enum value, Boolean nameInstead = true)
{
Type type = value.GetType();
string name = Enum.GetName(type, value);
if (name == null)
{
return null;
}
FieldInfo field = type.GetField(name);
DescriptionAttribute attribute = Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute)) as DescriptionAttribute;
if (attribute == null && nameInstead == true)
{
return name;
}
return attribute == null ? null : attribute.Description;
}