using System.Collections.Generic;
using Polenter.Serialization;
public static void Main()
var dict = new Dictionary<string, string[]>
{ "nikhil", new string[] { "nikhil.0@so.com", "nikhil.1@so.com" } }
var serialized = Serialize(dict);
Console.WriteLine(serialized);
var deserialized = Deserialize<Dictionary<string, string[]>>(serialized);
Console.WriteLine(string.Join(",", deserialized["nikhil"]) == string.Join(",", deserialized["nikhil"]));
private static string Serialize<T>(T obj) where T : class
using (var stream = new MemoryStream())
var serializer = new SharpSerializer();
serializer.Serialize(obj, stream);
return new StreamReader(stream).ReadToEnd();
private static T Deserialize<T>(string val) where T : class
if (string.IsNullOrWhiteSpace(val))
var bytes = Encoding.UTF8.GetBytes(val);
using (var stream = new MemoryStream(bytes))
var serializer = new SharpSerializer();
return serializer.Deserialize(stream) as T;