【问题标题】:How to prevent serialization of a property in WebAPI如何防止 WebAPI 中的属性序列化
【发布时间】:2017-03-12 02:37:49
【问题描述】:

我有一个模型类(实体框架)User,在执行 Request.CreateResponse 时,我不希望它的密码属性被序列化和发送。

我在 SO 帖子中读到,对于这种情况,有一个 [JsonIgnore] 用于属性中,但由于某种原因,我的 Visual Studio 不知道如何解决它(我猜它不是来自 web api 库本身...?我对 C# 很陌生,但 VS 似乎无法使用 Ctrl+ 来建议它。)

无论如何,这里最好的建议是什么?如果可能的话,我不想为此做一个 DTO。

【问题讨论】:

标签: c# asp.net-web-api json.net


【解决方案1】:

您可以对要在序列化中隐藏的属性使用 DataAnnotations:

using Newtonsoft.Json

[JsonIgnore]
public string password {get; set;}

在您要隐藏的每个属性上使用它。

【讨论】:

    【解决方案2】:

    让您的模型与其序列化或反序列化的方式相隔离。

    如果您有特定字段要返回给 API 使用者,则创建一个 DTO,其中仅包含您的方法应返回的数据。

    在这种情况下,您可以使用 AutoMapper 在 DTO 和实体类之间进行映射

    【讨论】:

      猜你喜欢
      • 2013-03-07
      • 2011-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-16
      • 2012-08-04
      • 1970-01-01
      相关资源
      最近更新 更多