2016-09-28 1 views
0

J'ai créé un serveur Web basé sur OWIN/Katana. À l'heure actuelle, j'ai des problèmes sur la compréhension du processus de désérialisation JSON ...Modifier le processus de désérialisation de l'API Web ASP.NET

C'est simple POST-Méthode:

public IHttpActionResult Post([FromBody] Person person) { 
// do some stuff 
return Ok(); 
} 

Maintenant la question: Pourquoi tous accesseurs du modèle appelé par défaut, même s'il sont attribués comme "JsonIgnore" ou pas "DataMember".

Modèle:

[DataContract] 
public class Person 
{ 
    private string firstName; 

    //This property-getter should not be called 
    public string FirstName{ 
     get { 
      return firstName; 
     } 
     set { 
      firstName = value; 
     } 
    } 

    //This property-getter should be called 
    [DataMember] 
    public string LastName { get;set; } 
} 

Est-il possible de changer ce processus?

+0

Si vous décorer la propriété FirstName avec l'attribut JsonIgnore - getter ne sera pas appelé pendant la sérialisation/désérialisation. –

+0

Getter est toujours appelé, également avec l'attribut JsonIgnore – cproduct

Répondre

0

Résolu.

Je détecte que le getter est appelé au cours de modèle API Web validateur (voir « DefaultBodyModelValidator » class)