ContainerList_GetObject.cs 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. using System.Linq;
  2. using System.IO;
  3. using System.Fire.Serialize;
  4. using System.Fire.Serialize.Property;
  5. namespace System.Fire.Container {
  6. public partial class ContainerList {
  7. /// <summary>
  8. /// Returns an deserialized object that was stored in a container
  9. /// </summary>
  10. /// <typeparam name="T">The object type</typeparam>
  11. /// <param name="FileIndex">File</param>
  12. /// <returns>Returns the object</returns>
  13. public T GetObject<T>(int FileIndex) {
  14. return this.GetObject<T>(this._files[FileIndex]);
  15. }
  16. /// <summary>
  17. /// Returns an deserialized object that was stored in a container
  18. /// </summary>
  19. /// <typeparam name="T">The object type</typeparam>
  20. /// <param name="File">File</param>
  21. /// <returns>Returns the object</returns>
  22. public T GetObject<T>(ContainerFile File) {
  23. Stream s = this.GetStream(File);
  24. return Serializer.DeserializeObject<T>(s);
  25. }
  26. /// <summary>
  27. /// Returns an deserialized object that was stored in a container
  28. /// </summary>
  29. /// <typeparam name="T">The object type</typeparam>
  30. /// <param name="FileIndex">File</param>
  31. /// <param name="size">The array size</param>
  32. /// <returns>Returns the object</returns>
  33. public T GetObject<T>(int FileIndex, ArraySize size) {
  34. return this.GetObject<T>(this._files[FileIndex], size);
  35. }
  36. /// <summary>
  37. /// Returns an deserialized object that was stored in a container
  38. /// </summary>
  39. /// <typeparam name="T">The object type</typeparam>
  40. /// <param name="File">File</param>
  41. /// <param name="size">The array size</param>
  42. /// <returns>Returns the object</returns>
  43. public T GetObject<T>(ContainerFile File, ArraySize size) {
  44. Stream s = this.GetStream(File);
  45. return Serializer.DeserializeObject<T>(s,size);
  46. }
  47. public T GetObject<T>(int FileIndex, StringEncoding encode) {
  48. return this.GetObject<T>(this._files[FileIndex], encode);
  49. }
  50. public T GetObject<T>(ContainerFile File, StringEncoding encode) {
  51. Stream s = this.GetStream(File);
  52. return Serializer.DeserializeObject<T>(s, encode);
  53. }
  54. public T GetObject<T>(int FileIndex, ArraySize size, StringEncoding encode) {
  55. return this.GetObject<T>(this._files[FileIndex], size, encode);
  56. }
  57. public T GetObject<T>(ContainerFile File, ArraySize size, StringEncoding encode) {
  58. Stream s = this.GetStream(File);
  59. return Serializer.DeserializeObject<T>(s, size, encode);
  60. }
  61. public int WriteObject(object obj) {
  62. int stackId = this.CreateStack();
  63. MemoryStream mem = new MemoryStream();
  64. Serializer.SerializeObject(mem, obj);
  65. this.Write(stackId, mem.ToArray());
  66. return this.CloseStack(stackId);
  67. }
  68. public int WriteObject(object obj, ArraySize size) {
  69. int stackId = this.CreateStack();
  70. MemoryStream mem = new MemoryStream();
  71. Serializer.SerializeObject(mem, obj, size);
  72. this.Write(stackId, mem.ToArray());
  73. return this.CloseStack(stackId);
  74. }
  75. public int WriteObject(object obj, StringEncoding encode) {
  76. int stackId = this.CreateStack();
  77. MemoryStream mem = new MemoryStream();
  78. Serializer.SerializeObject(mem, obj, encode);
  79. this.Write(stackId, mem.ToArray());
  80. return this.CloseStack(stackId);
  81. }
  82. public int WriteObject(object obj, ArraySize size, StringEncoding encode) {
  83. int stackId = this.CreateStack();
  84. MemoryStream mem = new MemoryStream();
  85. Serializer.SerializeObject(mem, obj, size, encode);
  86. this.Write(stackId, mem.ToArray());
  87. return this.CloseStack(stackId);
  88. }
  89. public int WriteObject(object obj, string FileName) {
  90. int stackId = this.CreateStack(FileName);
  91. MemoryStream mem = new MemoryStream();
  92. Serializer.SerializeObject(mem, obj);
  93. this.Write(stackId, mem.ToArray());
  94. return this.CloseStack(stackId);
  95. }
  96. public int WriteObject(object obj, string FileName, ArraySize size) {
  97. int stackId = this.CreateStack(FileName);
  98. MemoryStream mem = new MemoryStream();
  99. Serializer.SerializeObject(mem, obj, size);
  100. this.Write(stackId, mem.ToArray());
  101. return this.CloseStack(stackId);
  102. }
  103. public int WriteObject(object obj, string FileName, StringEncoding encode) {
  104. int stackId = this.CreateStack(FileName);
  105. MemoryStream mem = new MemoryStream();
  106. Serializer.SerializeObject(mem, obj, encode);
  107. this.Write(stackId, mem.ToArray());
  108. return this.CloseStack(stackId);
  109. }
  110. public int WriteObject(object obj, string FileName, ArraySize size, StringEncoding encode) {
  111. int stackId = this.CreateStack(FileName);
  112. MemoryStream mem = new MemoryStream();
  113. Serializer.SerializeObject(mem, obj, size, encode);
  114. this.Write(stackId, mem.ToArray());
  115. return this.CloseStack(stackId);
  116. }
  117. }
  118. }