private static bool ItemBase_DeepEquals(SettingItem item1, SettingItem item2)
        {
            if (item1 == null || item2 == null)
            {
                return(item1 == null && item2 == null);
            }

            if (!item1.Equals(item2))
            {
                return(false);
            }

            if (item1.Attributes.Count == item2.Attributes.Count)
            {
                return(item1.Attributes.OrderedEquals(item2.Attributes, data => data.Key, StringComparer.OrdinalIgnoreCase));
            }

            return(false);
        }