0

私はこのクラスをWebAPIで返そうとしています:

    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; 
    }

何らかの理由で、Categoriesコレクションは常に空で返されます...何かが足りませんか?

ありがとう!

アップデート:

 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 .. Categoryクラスの両方のプロパティにパブリックセッターがないため、カテゴリは表示されません。

なぜシリアライザーがセッターのアクセス修飾子をチェックしているのか不思議に思います。

4

2 に答える 2

0

プライベート セットの問題が Web API RTM リリースで修正されていることを確認しました。

于 2012-11-13T19:13:00.790 に答える
0

カテゴリ クラスには 2 つのプロパティがあり、どちらもプライベート セッターを持っています。プライベート セッターを持つプロパティはシリアル化されません。

于 2012-11-13T09:25:50.103 に答える