You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

Serializer.cs 1.4 kB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using Discord.Net.Converters;
  2. using Newtonsoft.Json;
  3. using System;
  4. using System.IO;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Globalization;
  10. namespace Discord.Tests.Framework
  11. {
  12. public class Json
  13. {
  14. public static JsonSerializer Serializer;
  15. public Json()
  16. {
  17. Serializer = new JsonSerializer();
  18. var _serializer = new JsonSerializer();
  19. _serializer.Converters.Add(new ChannelTypeConverter());
  20. _serializer.Converters.Add(new ImageConverter());
  21. _serializer.Converters.Add(new NullableUInt64Converter());
  22. _serializer.Converters.Add(new PermissionTargetConverter());
  23. _serializer.Converters.Add(new StringEntityConverter());
  24. _serializer.Converters.Add(new UInt64Converter());
  25. _serializer.Converters.Add(new UInt64EntityConverter());
  26. _serializer.Converters.Add(new UserStatusConverter());
  27. Serializer = _serializer;
  28. }
  29. public static string SerializeObject(object o)
  30. {
  31. var sb = new StringBuilder(256);
  32. using (TextWriter text = new StringWriter(sb, CultureInfo.InvariantCulture))
  33. using (JsonWriter writer = new JsonTextWriter(text))
  34. Serializer.Serialize(writer, o);
  35. return sb.ToString();
  36. }
  37. }
  38. }