我有一个返回所有蛇的功能。看起来像这样,工作正常:
// Function that returns JSON list of snakes
public List<Snake> GetSnakes()
{
var snakes = new List<Snakes>();
snakes.Add(new Snake { Length = "10.2" } );
return snakes;
}
现在我收到了一堆具有不同属性的动物,我不想为每个动物制作一份清单。我想要这样的东西:
public class AnimalService : IAnimalService
{
private List<Animal> animals = new List<Animals>();
public List<Animal> getSnakes()
{
animals.Add(new Snake { Name = "Snake" } );
return animals;
}
public List<Animal> getPigs()
{
animals.Add( new Pig { Weight = "100" } );
return animals;
}
}
但这不起作用。当我将一个派生类添加到我的动物列表中时,WCF服务停止为该函数生成JSON并且不返回任何内容。没有错误或任何结果,但没有结果。我怎样才能实现我的目标?一个包含动物返回集的列表,无关紧要。
答案 0 :(得分:6)
尝试为您要序列化的每个子类的KnownTypeAttribute
类添加Animal
:
[DataContract]
[KnownType(typeof(Snake))]
[KnownType(typeof(Pig))]
public class Animal
{
}