public void Delete(IConfigurable instance) { if (instance == null) { throw new ArgumentNullException("instance"); } ConfigurableObject configurableObject = instance as ConfigurableObject; if (configurableObject == null) { throw new NotSupportedException("Delete: " + instance.GetType().FullName); } if (configurableObject.ObjectState == ObjectState.Deleted) { throw new InvalidOperationException(ServerStrings.ExceptionObjectHasBeenDeleted); } this.InternalDelete(configurableObject); configurableObject.ResetChangeTracking(); configurableObject.MarkAsDeleted(); }