C# 如何为Web API中的所有数据成员将EmitDefaultValue全局设置为false?

C# 如何为Web API中的所有数据成员将EmitDefaultValue全局设置为false?,c#,asp.net-mvc,web-services,asp.net-web-api,C#,Asp.net Mvc,Web Services,Asp.net Web Api,我正在使用Web API,并设置了以下属性,以便在序列化成员时不显示默认值: [DataMember(EmitDefaultValue = false)] public string EventName { get; set; } 我总共有大约20个DataContracts和100个属性作为DataMembers,那么如何将EmitDefaultValue全局设置为false呢 我希望我不必使用反射来编写自己的逻辑 在你的App\u Start文件夹中,将其添加到WebAp

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

 [DataMember(EmitDefaultValue = false)]
        public string EventName { get; set; }
我总共有大约20个DataContracts和100个属性作为DataMembers,那么如何将EmitDefaultValue全局设置为false呢


我希望我不必使用反射来编写自己的逻辑

在你的App\u Start文件夹中,将其添加到WebApiConfig

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

我使用的是XmlFormatter,它没有SerializerSettings属性。thanks@TheLight在XmlSerializer上找到它有什么乐趣吗?我认为在这种情况下,
DefaultValueHandling=DefaultValueHandling.Ignore
NullValueHandling=NullValueHandling.Ignore
更合适。当然,这只适用于JSON输出。