C# 如何为Web API中的所有数据成员将EmitDefaultValue全局设置为false?
我正在使用Web API,并设置了以下属性,以便在序列化成员时不显示默认值: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
[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输出。