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