/// <summary> /// Удаляет ключ и значение расширенного свойства из словаря свойств. /// Если словарь свойств не содержит имени переданного свойства - ничего не происходит. /// </summary> /// <param name="propertyName">Имя расширенного свойства.</param> public void RemoveProperty(string propertyName) { if (string.IsNullOrEmpty(propertyName)) { throw new ArgumentNullException("propertyName"); } if (this.PropertyValues.ContainsKey(propertyName)) { PropertyContainer container = this.GetPropertyContainer(propertyName); container.CheckEditable(); this.PropertyValues.Remove(propertyName); } }
/// <summary> /// Устанаваливает значение расширенного свойства объекта. /// </summary> /// <param name="propertyName">Имя расширенного свойства.</param> /// <param name="propertyValue">Значение свойства.</param> /// <param name="editable">При переданном true, позволяет изменять/удалять значение свойства после его первичной установки.</param> public void SetProperty(string propertyName, object propertyValue, bool editable) { if (string.IsNullOrEmpty(propertyName)) { throw new ArgumentNullException("propertyName"); } if (!this.PropertyValues.ContainsKey(propertyName)) { PropertyContainer container = new PropertyContainer(propertyName); container.Value = propertyValue; container.Editable = editable; this.PropertyValues.Add(propertyName, container); } else { PropertyContainer container = this.GetPropertyContainer(propertyName); container.CheckEditable(); container.Value = propertyValue; } }