Пример #1
0
        /// <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);
            }
        }
Пример #2
0
 /// <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;
     }
 }