В настоящее время я создаю пользовательскую форму .Net с использованием C # и заполняю ее пользовательскими элементами управления. У каждого элемента управления есть средство доступа, которое получает и устанавливает объект, содержащий данные, которыми будет заполнен элемент управления.
Во время выполнения все отлично работает, но во время разработки я получу ошибки в конструкторе форм. Ошибки всегда имеют вид «Не удается преобразовать объект типа [ObjectA] в объект типа [ObjectA]»
На этом этапе я могу зайти в файл resx и удалить строку, которая ссылается на объект типа ObjectA, а затем перейти в файл designer.cs и удалить строку в InitializeComponent, которая устанавливает метод доступа к данным для элемента управления из файла resx.
Как только я это сделаю, форма будет отображаться в конструкторе, пока она не перестроит InitializeComponet и не вставит строки / данные в resx и InitializeComponent.
Чего мне не хватает в моем контроле и дизайне классов, которые завершат этот цикл? Я пытался использовать режим использования Liscence и режим конструктора со смешанными результатами, и я бы предпочел, чтобы я мог решить эту проблему в своем проекте.
Спасибо за любую помощь, которую вы можете оказать.
Обновление: я добавил атрибут ...
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
В свойство, и я получил ошибку в конструкторе «ObjectA имеет значение null, это не разрешено!», Поэтому я изменил строку на ...
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
и проблема ушла. Поскольку мне не нужно устанавливать какое-либо из этих свойств во время разработки, скрытый атрибут, вероятно, более уместен.
Спасибо.