次のようなコントローラーメソッドがある場合:
public IQueryable<ClassBase> Get()
{
}
ClassBase 派生クラスの IQueryable を返すと、シリアライザーが派生クラスをシリアル化し、派生クラスが転送されます (JSON のみをテストしました)。
基本クラスの出力を取得する方法はありますか?
次のようなコントローラーメソッドがある場合:
public IQueryable<ClassBase> Get()
{
}
ClassBase 派生クラスの IQueryable を返すと、シリアライザーが派生クラスをシリアル化し、派生クラスが転送されます (JSON のみをテストしました)。
基本クラスの出力を取得する方法はありますか?
シリアライザーは、渡されたオブジェクトをシリアライズします。派生クラスを微調整して、シリアル化する方法に関する指示を提供することもできますが、おそらくそれはしたくないでしょう。
これが、MVVM デザイン パターンが存在する理由です。実際にすべきことは、実際に必要なフィールドだけを持つビュー モデル オブジェクトにビジネス オブジェクトを投影することです。このようなもの:
public IQueryable<ClassViewModel> Get()
{
return CollectionOfClassDerivedObjects.Select(x => new ClassViewModel(x))
}