如何在Web API中为所有数据成员全局设置EmitDefaultValue为false?

The*_*ght 5 c# asp.net-mvc web-services asp.net-web-api

我正在使用Web API,并且我设置了以下属性,以便在序列化成员时不显示默认值:

 [DataMember(EmitDefaultValue = false)]
        public string EventName { get; set; }
Run Code Online (Sandbox Code Playgroud)

我总共有大约20个DataContracts和100个属性作为DataMembers,那么如何才能将EmitDefaultValue全局设置为false呢?

我希望我不必使用Reflection编写自己的逻辑!

小智 0

在您的 App_Start 文件夹中将其添加到 WebApiConfig

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.Formatters.JsonFormatter.SerializerSettings =
            new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
Run Code Online (Sandbox Code Playgroud)