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#類的副作用。如果不寫一個可以完成的不同的序列化程序,我不認爲你可以完成,但這是相當數量的工作。 –