枚举错误代码返回JSON

时间:2013-11-27 16:55:10

标签: c# enums

我现在使用的是

Response.StatusCode = 420;
Dictionary<string, object> error = new Dictionary<string, object>();
error.Add("ErrorCode", BL.Error.Error.NoMethod);
error.Add("ErrorMessage", BL.Error.Enumerations.GetEnumDesc(BL.Error.Error.NoMethod));
Response.Write(JsonConvert.SerializeObject(error);

我想要使用的结果是相同的。

Response.StatusCode = 420;
error = BL.Error.Error.NoMethod;
Response.Write(error);

如何将代码转换为此代码? 谢谢你的帮助。

我的错误类

public enum Error
{
    [Description("No Method")]
    NoMethod = 1,
    [Description("Missing Value")]
    MissingValue = 2
}

public class Enumerations
{
    public static string GetEnumDesc(Enum value)
    {
        FieldInfo fi = value.GetType().GetField(value.ToString());

    DescriptionAttribute[] attributes =
        (DescriptionAttribute[])fi.GetCustomAttributes(
        typeof(DescriptionAttribute),
        false);

    if (attributes != null &&
        attributes.Length > 0)
        return attributes[0].Description;
    else
        return value.ToString();
    }
}

1 个答案:

答案 0 :(得分:0)

您可以自己创建一个Error类,接受构造函数中的枚举值并覆盖其ToString()方法以适合您所需的输出:

    public override string ToString()
    {
        ...
    }