JsvSerializer.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using System.IO;
  2. namespace MediaBrowser.Common.Serialization
  3. {
  4. /// <summary>
  5. /// This adds support for ServiceStack's proprietary JSV output format.
  6. /// It's a hybrid of Json and Csv but the serializer performs about 25% faster and output runs about 10% smaller
  7. /// http://www.servicestack.net/benchmarks/NorthwindDatabaseRowsSerialization.100000-times.2010-08-17.html
  8. /// </summary>
  9. public static class JsvSerializer
  10. {
  11. public static void SerializeToStream<T>(T obj, Stream stream)
  12. {
  13. ServiceStack.Text.TypeSerializer.SerializeToStream<T>(obj, stream);
  14. }
  15. public static T DeserializeFromStream<T>(Stream stream)
  16. {
  17. return ServiceStack.Text.TypeSerializer.DeserializeFromStream<T>(stream);
  18. }
  19. public static void SerializeToFile<T>(T obj, string file)
  20. {
  21. using (Stream stream = File.Open(file, FileMode.Create))
  22. {
  23. ServiceStack.Text.TypeSerializer.SerializeToStream<T>(obj, stream);
  24. }
  25. }
  26. public static T DeserializeFromFile<T>(string file)
  27. {
  28. using (Stream stream = File.OpenRead(file))
  29. {
  30. return ServiceStack.Text.TypeSerializer.DeserializeFromStream<T>(stream);
  31. }
  32. }
  33. }
  34. }