using System; using System.Collections; using System.Collections.Generic; using Newtonsoft.Json.Converters; namespace Umbraco.Core.Serialization { /// /// Marks dictionaries so they are deserialized as case-insensitive. /// /// /// [JsonConverter(typeof(CaseInsensitiveDictionaryConverter{PropertyData[]}))] /// public Dictionary{string, PropertyData[]} PropertyData {{ get; set; }} /// public class CaseInsensitiveDictionaryConverter : CustomCreationConverter { public override bool CanWrite => false; public override bool CanRead => true; public override bool CanConvert(Type objectType) => typeof(IDictionary).IsAssignableFrom(objectType); public override IDictionary Create(Type objectType) => new Dictionary(StringComparer.OrdinalIgnoreCase); } }