SerializeSortByNameResolver.cs 543 B

123456789101112131415161718192021222324
  1. #if NET5_0_OR_GREATER
  2. using System;
  3. using System.Linq;
  4. using System.Text.Json;
  5. using System.Text.Json.Serialization.Metadata;
  6. namespace Masuit.Tools.Systems;
  7. public class SerializeSortByNameResolver : DefaultJsonTypeInfoResolver
  8. {
  9. public override JsonTypeInfo GetTypeInfo(Type t, JsonSerializerOptions o)
  10. {
  11. var jti = base.GetTypeInfo(t, o);
  12. int order = 1;
  13. foreach (var property in jti.Properties.OrderBy(p => p.Name))
  14. {
  15. property.Order = order++;
  16. }
  17. return jti;
  18. }
  19. }
  20. #endif