Asp.Net Webapi OData V4 枚举密钥支持

Ray*_*rks 5 asp.net enums odata

我实现了一个支持 OData V4 的 ASP.Net Webapi (V4.6)。我的控制器继承自 ODataController,我使用标准的 Json Serializer。

我的一些实体有枚举字段,我想序列化枚举键而不是对应的值。我正在将 OData 与 Asp.Net.WebApi.OData v5.7 一起使用,但找不到合适的解决方案。有没有人有想法来实现这个?

实体类:

public class MyEntity
{
    #region Properties     

    public int Id { get;set; }
    public DateTime? StartDate { get; set; }
    public DateTime? EndDate { get; set; }

    public ProjectStatus Status { get; set; }
    public double EstimatedCost { get; set; }

    #endregion
}

public enum ProjectStatus
{
    New = 10,
    Active = 20,
    Paused = 30,
    Finished = 40,
}
Run Code Online (Sandbox Code Playgroud)

序列化后的结果是: { "Id":1,"StartDate":null,"EndDate":null, "Status":"Active" ,"EstimatedCost":0.0 }

是否可以从枚举而不是值序列化密钥(“状态”:“20”),因为序列化后的结果是:“状态”:“活动”。