【发布时间】:2023-04-07 04:37:01
【问题描述】:
我有一个 AngularJS + MVC 5 + Web API 2 应用程序,它允许用户在浏览器中管理对象集合,并在单击“保存”按钮时立即提交所有更改。进行更改时,将向 JavaScript 对象添加一个或多个属性:IsAdded、IsUpdated、IsRemoved。在服务器端检查属性以确定持久化模型时要执行的操作。
模型通过 Web API 使用 Json.NET 提供,基类是:
public class CollectionItemViewModel : ICollectionItem
{
public bool IsAdded { get; set; }
public bool IsUpdated { get; set; }
public bool IsRemoved { get; set; }
}
这很好用,但给我的序列化 JSON 增加了麻烦。我可以选择不使用ShouldSerialize 序列化这三个属性,但这也会阻止它们反序列化。
public bool ShouldSerializeIsAdded()
{
return false;
}
public bool ShouldSerializeIsUpdated()
{
return false;
}
public bool ShouldSerializeIsRemoved()
{
return false;
}
是否可以使用 Json.NET 反序列化但不能序列化特定属性?
【问题讨论】:
-
ShouldSerialize* 绝对不应该影响反序列化。你对此绝对确定吗?因为那将是一个重大错误