如何告诉JSON.NET StringEnumConverter采用DisplayName?

Irs*_*shu 20 c# asp.net json.net asp.net-web-api

我有以下型号:

public enum Status
{
    [Display(Name = "Awaiting Approval")]
    AwaitingApproval,
    Rejected,
    Accepted,
}
Run Code Online (Sandbox Code Playgroud)

我在这样的模型中使用这个枚举:

public class Docs
    {
        [Key]
        public int Id { get; set; }
        [JsonConverter(typeof(StringEnumConverter))]
        public Status Status { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

现在这很好用; 序列化程序返回枚举的等效字符串.我的问题是如何告诉JSON.NET采用Display属性而不是string

nsg*_*cev 43

你应该尝试使用[EnumMember]而不是[Display].您还可以将该[JsonConverter]属性放在枚举本身上.

[JsonConverter(typeof(StringEnumConverter))]
public enum Status
{
    [EnumMember(Value = "Awaiting Approval")]
    AwaitingApproval,
    Rejected,
    Accepted,
}
Run Code Online (Sandbox Code Playgroud)