加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-web-api – ASP.NET Web API IQueryable挑战

发布时间:2020-12-16 07:23:36 所属栏目:asp.Net 来源:网络整理
导读:我想在我的控制器中使用以下模式: api/{controller}/{id}/{collection} 示例:api / customers / 123 / addresses 但我想从相应的Get动作返回IQueryable Of T.我想要这样的东西(简化): public IQueryable???? GetCollection(int id,string collection) { s
我想在我的控制器中使用以下模式:

api/{controller}/{id}/{collection}

示例:api / customers / 123 / addresses

但我想从相应的Get动作返回IQueryable Of T.我想要这样的东西(简化):

public IQueryable<????> GetCollection(int id,string collection)  
{  
    switch(collection)  
    {  
        case "addresses":  
            return _addresses.AsQueryable();  
            break;  
        case "orders":  
            return _orders.AsQueryable();  
            break;  
        default:  
            throw new Exception(NotSupported);  
    }  
}

可以这样做吗?
推荐的方法是什么?

解决方法

@SLacks是正确的,你应该返回IQueryable< object>或IQueryable< someBaseType>如果你可以的话.

您获得的错误是DataContract Serializer的一个功能.所以你有几个选择.

>切换到支持您想要的备用xml serlializer.
> Swtitch到一种输出形式,绕过问题的串行器(比如使用JSON.net的JSON)
>教授数据合同序列化程序如何使用的序列化对象

对于“教学”选项,您可以通过两种方式进行教学.

(A)利用[KnownType(typeof(…))]属性.这是a post on the KnownType attribute.它适用于WCF,但应该让你入门.

(B)使用数据合同解析器.这是post should get you started.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读