gpt4 book ai didi

c# - 根据返回类型Interface限制Web API序列化的模型数据字段

转载 作者:行者123 更新时间:2023-11-30 22:22:52 25 4
gpt4 key购买 nike

我们正在更新我们的架构,以便为桌面、Web 和移动设备使用可在 MVVM 模式中使用的单一对象模型。我希望能够通过使用 Controller 上的接口(interface)来限制通过 Web API 序列化的数据字段。这是必需的,因为移动模型对象存储在 HTML5 本地存储中,因此不要携带可选数据,而瘦桌面客户端将能够存储(和使用)更多数据。

为实现这一点,模型将实现定义哪些数据字段应序列化的不同接口(interface),并且将有一个特定于该接口(interface)的 Controller 。

问题是 Web API 总是序列化模型中的每个字段,即使它不是返回接口(interface)的一部分。如何只序列化返回接口(interface)中的字段?

最佳答案

我知道如何自动化特定接口(interface)而不是整个对象的序列化过程。
我编写了包含此类代码的库(目前这段代码由 github gist 共享)。它公开了名为 ToDynamic 的扩展方法.

public static dynamic ToDynamic<T>(this T value, bool deep = true);

使用特定的 T 来提取该 T 类型中可用的字段。
在下面的示例中,T 将自动确定。
所以只会提取和序列化 IClub 成员:

IReadOnlyList<IClub> clubs = retrieving.GetClubs(page, size, criteria);

return this.Request.CreateResponse(HttpStatusCode.OK, clubs.Select(item => item.ToDynamic()));

关于c# - 根据返回类型Interface限制Web API序列化的模型数据字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13582617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com