Guest User

Untitled

a guest
May 27th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.41 KB | None | 0 0
  1. #region Serialization
  2. private static DataContractSerializer CreateSerializer()
  3. {
  4. var serializer = new DataContractSerializer(
  5. typeof(Player),
  6. new[] { typeof(Player) },
  7. int.MaxValue,
  8. true,
  9. true,
  10. null);
  11.  
  12. return serializer;
  13. }
  14. private static DataContractSerializer CreateSerializer2()
  15. {
  16. var serializer = new DataContractSerializer(
  17. typeof(Player),
  18. new[] { typeof(Trainer) },
  19. int.MaxValue,
  20. true,
  21. true,
  22. null);
  23.  
  24. return serializer;
  25. }
  26. private static DataContractSerializer CreateSerializer3()
  27. {
  28. var serializer = new DataContractSerializer(
  29. typeof(Player),
  30. new[] { typeof(FBase) },
  31. int.MaxValue,
  32. true,
  33. true,
  34. null);
  35.  
  36. return serializer;
  37. }
  38.  
  39. public void SaveTo(Stream stream)
  40. {
  41. var serializer = CreateSerializer();
  42. var serializer2 = CreateSerializer2();
  43. var serializer3 = CreateSerializer3();
  44.  
  45. var xmlSettings = new XmlWriterSettings
  46. {
  47. CloseOutput = false,
  48. Indent = true,
  49. NewLineChars = Environment.NewLine,
  50. };
  51.  
  52. using (var xmlWriter = XmlWriter.Create(stream, xmlSettings))
  53. {
  54. serializer.WriteObject(xmlWriter, this);
  55. serializer2.WriteObject(xmlWriter, this);
  56. serializer3.WriteObject(xmlWriter, this);
  57. xmlWriter.Flush();
  58. }
  59. }
  60.  
  61. public static Team LoadFrom(Stream stream)
  62. {
  63. var serializer = CreateSerializer();
  64. var serializer2 = CreateSerializer2();
  65. var serializer3 = CreateSerializer3();
  66. var xmlSettings = new XmlReaderSettings
  67. {
  68. CloseInput = false,
  69. };
  70.  
  71. using (var xmlReader = XmlReader.Create(stream, xmlSettings))
  72. {
  73. var deserializedObject = serializer.ReadObject(xmlReader);
  74.  
  75. return (Team)deserializedObject;
  76.  
  77. }
  78.  
  79.  
  80. }
  81. #endregion
Add Comment
Please, Sign In to add comment