ProtobufSerializer.cs 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.IO;
  7. namespace MediaBrowser.Common.Serialization
  8. {
  9. public static class ProtobufSerializer
  10. {
  11. public static void SerializeToStream<T>(T obj, Stream stream)
  12. {
  13. ProtoBuf.Serializer.Serialize<T>(stream, obj);
  14. }
  15. public static T DeserializeFromStream<T>(Stream stream)
  16. {
  17. return ProtoBuf.Serializer.Deserialize<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. 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 DeserializeFromStream<T>(stream);
  31. }
  32. }
  33. }
  34. }