1
好吧,所以我对WCF和C#都很陌生,对我来说是如此的光鲜。WCF返回包含派生类的基类对象的列表
我有一个函数返回所有的蛇。看起来这和正常工作:
// 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,并且不返回任何内容。没有错误或任何事情,但没有结果。我怎样才能达到我想要的?一个包含动物回归集的列表并不重要。
这个工作!但我确实得到了一个json属性,像这样:“__type”:“Snake:#AnimalDatabase.Snakes”。你知道如何去除这个? –
数据来自数据库,但我没有任何属性名为__type –
@Hasslarn这是'DataContractJsonSerializer'区分不同C#类的副作用。如果不写一个可以完成的不同的序列化程序,我不认为你可以完成,但这是相当数量的工作。 –