具有返回类型的多态:派生类是序列化的

时间:2012-12-12 13:43:27

标签: asp.net-web-api

当我有这样的控制器方法时:

    public IQueryable<ClassBase> Get()
    {           
    }

我返回一个IQueryable的ClassBase派生类,序列化程序序列化派生类并传递派生类(我测试的只是JSON) 这不是我想要/期望的。

有没有办法获得基类的输出?

1 个答案:

答案 0 :(得分:2)

序列化程序将序列化传递给它的对象。您可以调整派生类以提供有关如何序列化的说明,但您可能不希望这样做。

这就是MVVM设计模式存在的原因 - 您真正应该做的是将业务对象投影到一个View Model对象中,该对象只是您真正想要的字段。像这样:

public IQueryable<ClassViewModel> Get()
{
    return CollectionOfClassDerivedObjects.Select(x => new ClassViewModel(x))
}