Files
Newtonsoft.Json/Src/Newtonsoft.Json.Tests/Documentation/Samples/Bson/DeserializeFromBsonCollection.cs
T
2013-10-20 15:08:39 +13:00

59 lines
1.7 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using Newtonsoft.Json.Bson;
namespace Newtonsoft.Json.Tests.Documentation.Samples.Bson
{
public class DeserializeFromBsonCollection
{
#region Types
public class Event
{
public string Name { get; set; }
public DateTime StartDate { get; set; }
}
#endregion
public void Example()
{
//IList<Event> e = new List<Event>
// {
// new Event {StartDate = new DateTime(2013, 3, 31), Name = "Easter"}
// };
//MemoryStream ms1 = new MemoryStream();
//using (BsonWriter writer = new BsonWriter(ms1))
//{
// JsonSerializer serializer = new JsonSerializer();
// serializer.Serialize(writer, e);
//}
//string ss = Convert.ToBase64String(ms1.ToArray());
//Console.WriteLine(ss);
#region Usage
string s = "MQAAAAMwACkAAAACTmFtZQAHAAAARWFzdGVyAAlTdGFydERhdGUAgDf0uj0BAAAAAA==";
byte[] data = Convert.FromBase64String(s);
MemoryStream ms = new MemoryStream(data);
using (BsonReader reader = new BsonReader(ms))
{
reader.ReadRootValueAsArray = true;
JsonSerializer serializer = new JsonSerializer();
IList<Event> events = serializer.Deserialize<IList<Event>>(reader);
Console.WriteLine(events.Count);
// 1
Console.WriteLine(events[0].Name);
// Easter
}
#endregion
}
}
}