C# 如何防止WebAPI中属性的序列化
我有一个模型类(实体框架)C# 如何防止WebAPI中属性的序列化,c#,asp.net-web-api,json.net,C#,Asp.net Web Api,Json.net,我有一个模型类(实体框架)User,在执行Request.CreateResponse时,我不希望其“password”属性被序列化和发送 我在一篇SO帖子中读到,对于这种情况,属性中有一个[JsonIgnore],但出于某种原因,我的Visual Studio不知道如何解决它(我猜它不是来自web api库本身…?我对C#很陌生,但VS似乎不建议使用Ctrl+) 不管怎样,这里最好的建议是什么?如果可能的话,我不想仅为此制作DTO。您可以对要在序列化中隐藏的属性使用DataAnnotation
User
,在执行Request.CreateResponse
时,我不希望其“password”属性被序列化和发送
我在一篇SO帖子中读到,对于这种情况,属性中有一个[JsonIgnore]
,但出于某种原因,我的Visual Studio不知道如何解决它(我猜它不是来自web api库本身…?我对C#很陌生,但VS似乎不建议使用Ctrl+)
不管怎样,这里最好的建议是什么?如果可能的话,我不想仅为此制作DTO。您可以对要在序列化中隐藏的属性使用DataAnnotation:
using Newtonsoft.Json
[JsonIgnore]
public string password {get; set;}
在每个要隐藏的属性上使用它。保持模型与序列化或反序列化的方式隔离 如果要将特定字段返回给API使用者,则创建一个DTO,该DTO只包含方法应返回的数据
在这种情况下,您可以使用AutoMapper在DTO和实体类之间进行映射使用[ScriptIgnore]复制您正在使用的Web API版本的可能副本?不同版本使用不同的JSON序列化程序,请参阅以获取详细信息。最近使用的脚本将尝试[ScriptIgnore],并在明天更新。