Как запретить конструктору Windows Forms создавать значения по умолчанию для свойств? - PullRequest
8 голосов
/ 03 июня 2010

У меня есть пользовательский элемент управления со свойством ссылочного типа. Дизайнер Windows Forms продолжает генерировать код, который присваивает начальному значению свойства значение null. Как я могу предотвратить это?

Я попытался добавить методы Reset и ShouldSerialize - у Reset было пустое тело, и AlwaysSerialize всегда возвращал false - но это не сработало. Я также применил BrowsableAttribute и установил для него значение false.

Edit:

Тип свойства - это класс в том же проекте. Это не компонент или элемент управления, а простой класс, унаследованный от Object. Кроме того, установщик свойства вызывает метод, используя значение свойства в качестве аргумента, и метод не принимает значение NULL в качестве допустимого аргумента.

Пример:

public MyClass Property1 
{
   get { return _property1; }
   set
   {
        _property1 = value;
        SomeMethod(value); // This method throws ArgumentNullException;
   }
}

Примечание: я понимаю, что методы get и set были бы здесь более подходящими.

1 Ответ

21 голосов
/ 03 июня 2010

Мурки, я мог бы использовать фрагмент. Скажите разработчику, что он никогда не должен сериализовать значение свойства:

    [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
    public Image Aardvark { get; set; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...