【发布时间】:2014-02-15 23:34:08
【问题描述】:
我有一个轻量级设置,我在其中使用带有 OData 的 Web API 2,但不创建带有随附“/odata/$metadata”的“/odata”端点,而是只使用带有属性路由和 Get 方法标记的标准 ApiController覆盖 [Queryable]:[InlineCountQueryable] 在此处详述 Web API, OData, $inlinecount and testing。
这一切都很好,除了我只能公开没有任何集合或对象属性的专用模型类,因为 JSON 序列化程序会序列化整个对象图。我的理想行为是完全忽略所有集合,对象属性只包含在 $expand 中。
我相信这可以工作,因为 OData Web Api 2 脚手架 VS 2013 在实体框架上下文上创建具有相似的行为,但我希望尽可能保持精简并避免走我发现的那条路线有点脆弱,此服务不需要公开 $metadata 描述。
更新
我在 aspnet 示例中进行了一些挖掘,发现“CustomODataFormatter”示例似乎暴露了我需要修改的机制。但是,那里概述的 ODataSerializerProvider/ODataSerializer 设置根本不适用于属性路由(任何用 [Route("Some/Url")]) 定义的方法。
鉴于这似乎是我需要的,有谁知道属性路由和 odata 序列化程序提供程序机制是否应该一起工作?
【问题讨论】:
-
你有什么问题?
-
抱歉,我添加了一个包含明确问题的更新。
-
谢谢,但很抱歉我不知道答案。
标签: asp.net-web-api json.net odata asp.net-web-api2