aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Core/Bson
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2020-10-24 06:40:07 +0300
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2020-10-24 06:40:07 +0300
commitadaddad79352c156303e9178a6f172a18af50cd2 (patch)
tree0ff2a59c3007bc9c40b7b543a9a2afe32dbc3d45 /Software/Visual_Studio/Tango.Core/Bson
parent2d803e9410cd383d8e66c300f86fe0f7374c81ea (diff)
downloadTango-adaddad79352c156303e9178a6f172a18af50cd2.tar.gz
Tango-adaddad79352c156303e9178a6f172a18af50cd2.zip
Refactored DataStore Proto.
Diffstat (limited to 'Software/Visual_Studio/Tango.Core/Bson')
-rw-r--r--Software/Visual_Studio/Tango.Core/Bson/BsonUtcSerializer.cs44
1 files changed, 43 insertions, 1 deletions
diff --git a/Software/Visual_Studio/Tango.Core/Bson/BsonUtcSerializer.cs b/Software/Visual_Studio/Tango.Core/Bson/BsonUtcSerializer.cs
index 6f5cb7700..7621bd132 100644
--- a/Software/Visual_Studio/Tango.Core/Bson/BsonUtcSerializer.cs
+++ b/Software/Visual_Studio/Tango.Core/Bson/BsonUtcSerializer.cs
@@ -1,14 +1,56 @@
using Newtonsoft.Json;
+using Newtonsoft.Json.Bson;
using Newtonsoft.Json.Serialization;
using System;
using System.Collections.Generic;
using System.Globalization;
+using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tango.Core.Bson
{
+ public static class BsonConvert
+ {
+ private static BsonUtcSerializer _serializer;
+
+ static BsonConvert()
+ {
+ _serializer = new BsonUtcSerializer();
+ }
+
+ public static byte[] Serialize(Object obj)
+ {
+ MemoryStream ms = new MemoryStream();
+ using (BsonWriter writer = new BsonWriter(ms))
+ {
+ _serializer.Serialize(writer, obj);
+ return ms.ToArray();
+ }
+ }
+
+ public static byte[] Serialize<T>(T obj)
+ {
+ return Serialize((Object)obj);
+ }
+
+ public static Object Deserialize(byte[] data, Type type)
+ {
+ MemoryStream ms = new MemoryStream(data);
+ using (BsonReader reader = new BsonReader(ms))
+ {
+ Object obj = _serializer.Deserialize(reader, type);
+ return obj;
+ }
+ }
+
+ public static T Deserialize<T>(byte[] data)
+ {
+ return (T)Deserialize(data, typeof(T));
+ }
+ }
+
public class BsonUtcSerializer : JsonSerializer
{
private class DateTimeConverter : JsonConverter
@@ -65,4 +107,4 @@ namespace Tango.Core.Bson
DateTimeZoneHandling = DateTimeZoneHandling.RoundtripKind;
}
}
-}
+} \ No newline at end of file