2012-11-13 3 views
0

Je suis en train de retourner cette classe dans le Web api:WebAPI: propriété qui est collection d'objets complexes est vide alwasy

public IEnumerable<Product> Get() 
    { 
     var fruits = new Category("Fruits"); 
     var veggies = new Category("Veggies"); 

     var apple = new Product("apple"); 
     apple.Categories = new List<Category>() { fruits }; 

     var potato = new Product("Potatoes"); 
     potato.Categories = new List<Category>() { veggies }; 

     var banana = new Product("Banana"); 
     banana.Categories = new List<Category>() { fruits }; 

     List<Product> list = new List<Product>(){ 
      apple, potato, banana 
     }; 

     return list; 
    } 

Pour une raison quelconque la collection Catégories est toujours retourné vide ... I Am Il manque quelque chose?

Merci!

Mise à jour:

public class Category 
    { 
     public string Id { get; private set; } 
     public string Name { get; private set; } 

     public Category() { } 

     public Category(string name) 
     { 
      if (string.IsNullOrEmpty(name)) 
       throw new ArgumentException("name must be set"); 

      this.Name = name; 
     } 
    } 

aaand .. Il ne montrera pas les catégories parce que les deux propriétés dans la catégorie de classe ne sont pas setter public. Je me demande pourquoi le sérialiseur vérifie le modificateur d'accès de setter.

+0

avez-vous vérifié en ajoutant le point d'arrêt si la valeur pour les catégories sont présentes? Et je ne suis pas sûr de ce que la nouvelle liste () {fruits}; 's'il vous plaît signaler le constructeur de catégorie de catégorie. – Yasser

Répondre

0

La classe de catégorie avait 2 propriétés, les deux ayant un setter privé; les propriétés avec setter privé ne seront pas sérialisées.

0

J'ai vérifié que le problème de l'ensemble privé a été corrigé dans la version RTM Web.

Questions connexes