private void ValidateUniqueKeys()
{
var normalizedKeys = GetDynamicMemberNames().Select(p => new { Key = p, NormalizedKey = NormaliseKey(p) });
var duplicates = normalizedKeys.GroupBy(nk => nk.NormalizedKey).Where(g => g.Count() > 1).ToArray();
if (!duplicates.Any()) return;
var keys = duplicates.SelectMany(d => d.Select(x => x.Key));
throw new InvalidOperationException("Centroid.Config instance contains duplicate keys: " + string.Join(", ", keys));
}