using System.Collections.Generic;
using System.Runtime.Serialization;
namespace case_insensitive_dictionary_init
public class HierarchyInfo
public Dictionary<string, string> Data
Console.WriteLine("Assigning case insensitive dictionary.");
m_data = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
[DataMember(Name = "Data", EmitDefaultValue = false)]
private Dictionary<string, string> m_data;
static void Main(string[] args)
var original = new HierarchyInfo();
original.Data["mona"] = "lisa";
var json = JsonConvert.SerializeObject(original);
Console.WriteLine($"Json: {json}");
var reconstituted = JsonConvert.DeserializeObject<HierarchyInfo>(json);
static void Inspect(HierarchyInfo hierarchyInfo)
Console.WriteLine($"Dictionary keys: {string.Join(",", hierarchyInfo.Data.Keys)}");
Console.WriteLine($"Dictionary comparer: {hierarchyInfo.Data.Comparer}");
Console.WriteLine($"Mona found: {hierarchyInfo.Data.ContainsKey("Mona")}");