Какие вещи запускают Visual Studio для восстановления файла *.Designer.cs?
У меня были некоторые проблемы с инициализацией формы, связанные со значениями перезаписи файла.Designer.cs, которые я инициализировал в конструкторе пользовательского элемента управления.
Я разработал компонент (MyUserControl
) и вставил его в форму (MainForm
). Позже я добавил некоторые инициализации членов в MyUserControl
конструктор, но код, который был в MainForm.Designer.cs
за InitializeComponent()
был устаревшим, и код позже в этой функции переписывал мои новые инициализации из конструктора, вызванного ранее в этой функции.
Итак, по сути, то, что я сделал, вызвало переписывание Mainform.Designer.cs
но другие действия не сделали.
Есть хороший справочник, который описывает, когда дизайнер касается файлов *.Designer.cs? (Или это простое правило?) Джаред Пар указал мне на класс DesignerSerializationVisibilityAttribute, но, похоже, это одно дерево в лесу?
1 ответ
Вы специально стали жертвой наличия кода для старой версии вашего UserControl, все еще встроенного в метод InitializeComponent() формы. Если бы вы удалили элемент управления из формы перед изменением кода элемента управления, у вас не было бы проблемы. Снятие и последующая установка на место также исправили бы это.
Да, это простое правило. InitializeComponent() создается заново каждый раз, когда вы добавляете или удаляете элемент управления из формы.