В вашем примере вам нужно добавить свойство fishsticks
к Tadpole
.
public class Tadpole
{
//....
public int Fishsticks { get; set; }
}
Кроме того, почему вы добавляете свойство .Count
к своему типу JSON? Разве не имеет смысла просто .data.Count
или просто вернуть список и полностью пропустить упаковщик?
Я не проверял, какие свойства List<>
были сериализованы в последнее время, поэтому возможно, что он не включен, но даже в этом случае было бы разумнее сделать это:
List<Tadpole> myList = getList();
return new { data = myList , count = myList.Count };
Или создайте класс-потомок, который переопределяет .Count и добавляет атрибут сериализации.
Редактировать
Если я правильно помню, анонимные / динамические типы внутренне реализованы в виде словарей, а классы - нет. (Кстати, анонимные типы и динамические объекты приносят множество проблем производительности и обслуживания вместе с ними.)
Если вы по какой-то причине не хотите изменять Головастика, вы всегда можете создать класс-потомок:
public class HungryTadpole : TadPole
{
public int FishSticks { get; set; }
}
Строгий набор текста - ваш друг, и он спасет вас много головных болей в будущем.