diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-10-24 06:40:07 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-10-24 06:40:07 +0300 |
| commit | adaddad79352c156303e9178a6f172a18af50cd2 (patch) | |
| tree | 0ff2a59c3007bc9c40b7b543a9a2afe32dbc3d45 /Software/Visual_Studio/Tango.Core | |
| parent | 2d803e9410cd383d8e66c300f86fe0f7374c81ea (diff) | |
| download | Tango-adaddad79352c156303e9178a6f172a18af50cd2.tar.gz Tango-adaddad79352c156303e9178a6f172a18af50cd2.zip | |
Refactored DataStore Proto.
Diffstat (limited to 'Software/Visual_Studio/Tango.Core')
| -rw-r--r-- | Software/Visual_Studio/Tango.Core/Bson/BsonUtcSerializer.cs | 44 |
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 |
