我設置了一個WebApi控制器,該控制器應該返回一組不同類型的對象。請在我的虛設碼具有短期看:在Json中返回不同類型的對象
interface IDish
{
int ID { get; set; }
string Name { get; set; }
}
class Steak : IDish
{
public int ID { get; set; }
public string Name { get; set; }
public string CookingStyle { get; set; }
public int Weight { get; set; }
}
class Soup : IDish
{
public int ID { get; set; }
public string Name { get; set; }
}
class Dessert : IDish
{
public int ID { get; set; }
public string Name { get; set; }
public bool ContainsSugar { get; set; }
}
public class DishController : ApiController
{
public IEnumerable<IDish> Get()
{
var dishes = busisnessLogic.GetDishes();
return dishes;
}
}
正如你所看到的,在控制器中,我從我的業務邏輯檢索IDishes的集合。請不要太在意具體的課程。它們只是使樣本更容易在這裏解釋的樣本。真正的商業背景是完全不同的。
那麼,我的問題是什麼?當API控制器返回IDishes(在我的情況下爲Json)時,只有IDish接口的公共屬性被寫入Json輸出。
相反,我想將具體類的所有公共屬性寫入Json輸出。例如,如果IDish是「牛排」,我希望將其ID,名稱,CookingStyle和Weight寫出來。因此,只要ID和名稱是「湯」,並且ID,名稱和包含糖,如果它是「甜品」。
有沒有簡單的方法來實現這一目標?有時我往往沒有看到樹林前的樹...... ;-)
謝謝你們!
喬安娜您好,我想先用簡單的方法去。你能告訴我在哪裏「配置」。來自?這是什麼類型或對象?謝謝你的幫助!!! – Ingmar
@IngmarBode - 配置是一個'HttpConfiguration'對象,可用作'GlobalConfiguration.Configuration' –
@Anna:Super!那是失蹤的一塊。我把你的第一個代碼片段放在我的global.asax中,現在一切都像魅力一樣工作。現在我的Json結果中有很多元數據,但我完全可以忍受。重要的是我現在在輸出中具有所有具體類的所有屬性。非常感謝喬安娜。這節省了我的一天:-) – Ingmar