0
0

PropsContractResolver.cs 826 B

12345678910111213141516171819202122232425262728
  1. using Newtonsoft.Json;
  2. using Newtonsoft.Json.Serialization;
  3. using System.Collections.Generic;
  4. using System.Reflection;
  5. namespace ZhonTai.Admin.Core.Db;
  6. public class PropsContractResolver : CamelCasePropertyNamesContractResolver
  7. {
  8. private bool _ignore;
  9. private List<string> _propNames = null;
  10. public PropsContractResolver(List<string> propNames = null, bool ignore = true)
  11. {
  12. _propNames = propNames;
  13. _ignore = ignore;
  14. }
  15. protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
  16. {
  17. if (_propNames != null && _propNames.Contains(member.Name))
  18. {
  19. return _ignore ? null : base.CreateProperty(member, memberSerialization);
  20. }
  21. return base.CreateProperty(member, memberSerialization);
  22. }
  23. }