private void UpdateCustomAttributeValues(CustomAttribute attribute, IEnumerable <object> values)
        {
            var attributeValues = attribute.Values ?? new object[0];

            var valuesToAdd    = values.Where(v => !attributeValues.Contains(v)).ToArray();
            var valuesToRemove = attributeValues.Where(v => !values.Contains(v)).ToArray();

            if (valuesToRemove.Any())
            {
                valuesToRemove
                .ToList()
                .ForEach(v => attribute.RemoveValue(v));
            }

            if (valuesToAdd.Any())
            {
                valuesToAdd
                .ToList()
                .ForEach(v => attribute.AddValue(v));
            }
        }