public virtual void Save(IConfigurable instance)
        {
            if (instance == null)
            {
                throw new ArgumentNullException("instance");
            }
            ConfigurableObject configurableObject = instance as ConfigurableObject;

            if (configurableObject == null)
            {
                throw new NotSupportedException("Save: " + instance.GetType().FullName);
            }
            ValidationError[] array = configurableObject.Validate();
            if (array.Length > 0)
            {
                throw new DataValidationException(array[0]);
            }
            this.InternalSave(configurableObject);
            configurableObject.ResetChangeTracking(true);
        }