ByteArrayHexConverter.cs 901 B

1234567891011121314151617181920212223242526
  1. using Newtonsoft.Json;
  2. using System;
  3. using System.Linq;
  4. namespace VCommon.Json
  5. {
  6. public class ByteArrayHexConverter : JsonConverter
  7. {
  8. public override bool CanConvert(Type objectType) => objectType == typeof(byte[]);
  9. public override bool CanRead => false;
  10. public override bool CanWrite => true;
  11. public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) => throw new NotImplementedException();
  12. private readonly string _separator;
  13. public ByteArrayHexConverter(string separator = ",") => _separator = separator;
  14. public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
  15. {
  16. var hexString = string.Join(_separator, ((byte[])value).Select(p => p.ToString("X2")));
  17. writer.WriteValue(hexString);
  18. }
  19. }
  20. }