2013-06-07 1 views
5

J'utilise l'API Web et je l'ai mis la propriété ci-dessous afin que la valeur par défaut n'est pas affiché lorsque les membres sont sérialisés:Comment définir EmitDefaultValue sur false globalement pour tous les membres de données dans l'API Web?

[DataMember(EmitDefaultValue = false)] 
     public string EventName { get; set; } 

J'ai au total environ 20 DataContracts et 100 propriétés que DataMembers Comment Serait-ce possible de définir l'EmitDefaultValue à false globalement pour tous? J'espère que je n'aurai pas à écrire ma propre logique en utilisant Reflection!

Répondre

0

Dans votre dossier App_Start ajouter à WebApiConfig

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

J'utilise XMLFormatter et il n'a pas la propriété SerializerSettings. merci –

+1

@TheLight toute joie de trouver cela sur le XmlSerializer? – mizzle

+0

Je pense que 'DefaultValueHandling = DefaultValueHandling.Ignore' est plus approprié dans ce cas au lieu de' NullValueHandling = NullValueHandling.Ignore' Bien sûr, cela ne s'applique qu'à la sortie JSON. –

Questions connexes