Skip to content

Instantly share code, notes, and snippets.

@bblanchon
Created February 2, 2016 09:48
Show Gist options
  • Save bblanchon/349bf995feb65ad58f68 to your computer and use it in GitHub Desktop.
Save bblanchon/349bf995feb65ad58f68 to your computer and use it in GitHub Desktop.
How to use quasardb in a C# program with the DataContractSerializer
using Quasardb;
using System.IO;
using System;
using System.Runtime.Serialization;
namespace QuasardbDemoWithDataContractSerializer
{
class Program
{
[Serializable]
class MoveInfo
{
public string Name { get; set; }
public int Year { get; set; }
};
class Serializer<T>
{
public Serializer()
{
_dts = new DataContractSerializer(typeof(T));
}
public byte[] Serialize(T data)
{
var memoryStream = new MemoryStream();
_dts.WriteObject(memoryStream, data);
return memoryStream.ToArray();
}
public T Deserialize(byte[] data)
{
var memoryStream = new MemoryStream(data);
return (T)_dts.ReadObject(memoryStream);
}
private DataContractSerializer _dts;
}
static void Main(string[] args)
{
var serializer = new Serializer<MoveInfo>();
var qdb = new QdbCluster("qdb://127.0.0.1:2836");
qdb.Blob("movie001").Put(
serializer.Serialize(new MoveInfo
{
Name = "Life Of Brian",
Year = 1980
}));
var movie = serializer.Deserialize(
qdb.Blob("movie001").GetAndRemove());
Console.WriteLine("Name = {0}", movie.Name);
Console.WriteLine("Yeay = {0}", movie.Year);
Console.ReadKey();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment