制作自定义合同解析器:
public class ShouldSerializeContractResolver : DefaultContractResolver{ public static ShouldSerializeContractResolver Instance { get; } = new ShouldSerializeContractResolver(); protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization) { JsonProperty property = base.CreateProperty(member, memberSerialization); if (typeof(Account).IsAssignableFrom(member.DeclaringType) && member.Name == nameof(Account.PasswordHash)) { property.Ignored = true; } return property; }}我如何测试它:
var account = new Account { PasswordHash = "XXAABB" }; var settings = new JsonSerializerSettings { ContractResolver = ShouldSerializeContractResolver.Instance }; var json = JsonConvert.SerializeObject(account, settings); Console.WriteLine(json);


