Ошибка загрузки конструктора с c # /. Net 3.5 на VS 2008

У меня есть приложение на основе WinForms. Он компилируется и работает отлично. Проблема в том, что со вчерашнего дня я не могу открыть файл конструктора основной формы.
Сначала я подумал, что это связано с добавлением следующего вызова:

StyleManager.Load("some isl file");

Я удалил его, отменил изменения в файле, и ничего.

Я получаю сообщение об ошибке «Отсутствует корневой элемент» из-за вызова XmlDocument.LoadXml(). Источник - это метод, который на самом деле пытается загрузить XML-файл, но делает это только во время выполнения.

Если я проигнорирую это сообщение, я получаю ошибку «Ссылка на объект не установлена ​​на экземпляр объекта», и, игнорируя это тоже, я получаю «конструктор уже загружен».

Обновить

Если я закомментирую регистрацию делегата метода, который должен читать xml (в InitializeComponent()), проблема не возникает.

В нашем решении мы используем Infragistics, и они упоминаются в трассировке стека.

в System.Xml.XmlTextReaderImpl.Throw (исключение e) в System.Xml.XmlTextReaderImpl.ThrowWithoutLineInfo (String res) в System.Xml.XmlTextReaderImpl.ParseDocumentContent () в System.Xml.XmlTextReader.Impl.ReadXml ( .Load (документ XmlDocument, средство чтения XmlReader, логическое preserveWhitespace) в System.Xml.XmlDocument.Load (средство чтения XmlReader) в System.Xml.XmlDocument.LoadXml (String xml) в MyApp.Utilities.Xml.Load (String str) в Editor .Editor.tabFlowView_ActiveTabChanged (отправитель объекта, ActiveTabChangedEventArgs е) при Infragistics.Win.UltraWinTabControl.UltraTabControlBase.OnActiveTabChanged (ActiveTabChangedEventArgs е) при Infragistics.Win.UltraWinTabControl.UltraTabControlBase.RaiseEvent (UltraTabControlEventId идентификатор, EventArgs е) в Infragistics.Win.UltraWinTabControl.UltraTabControlBase .set_ActiveTab (значение UltraTab) в Infragistics.Win.UltraWinTabControl.UltraTabControlBase.OnManagerSelectedTabItemChanging (отправитель объекта, SelectedTabItemChangingEventArgs e ) в Infragistics.Win.UltraWinTabs. UltraTabControlBase.PerformDelayedInitialize () в Infragistics.Win.UltraWinTabControl.UltraTabControlBase.OnCreateControl () в System.Windows.Forms.Control.CreateControl (Boolean fIgnoreVisible) в System.Windows.Forms.Control Forms.Control.CreateControl (Boolean fIgnoreVisible) в System.Windows.Forms.Control.CreateControl (Boolean fIgnoreVisible) в System.Windows.Forms.Control.CreateControl (Boolean fIgnoreVisible) в System.Windows.Forms.Control.CreateControl ) в System.Windows.Forms.Control.CreateControl (Boolean fIgnoreVisible) в System.Windows.Forms.Control.CreateContro l () в System.Windows.Forms.Control.ControlCollection.Add (управляющее значение) в System.Windows.Forms.Form.ControlCollection.Add (управляющее значение) в System.Windows.Forms.Design.ControlDesigner.DesignerControlCollection.Add ( Контроль c)


person Noich    schedule 16.02.2011    source источник
comment
Я так понимаю, звонок по поводу загрузки xml - это не ваш собственный дизайн?   -  person Grant Thomas    schedule 16.02.2011
comment
Это то, что происходит во время выполнения - у вас есть представление xml и представление вашего файла с помощью перетаскивания (вы можете перетаскивать команды). Если вы отредактируете xml, а затем вернетесь к перетаскиванию, вы получите вызовы этого метода, чтобы сопоставить представление перетаскивания с представлением xml.   -  person Noich    schedule 16.02.2011


Ответы (6)


У меня эта ошибка возникает, в частности, при использовании UserControls в форме. Если вы делаете что-то, для чего требуется «активное соединение», генерируется исключение, которое невозможно.

В вашем случае он, похоже, вызывает событие ActiveTabChanged, которое вызывает загрузку xml. Перед загрузкой xml добавляет до вызова xml load.

if (DesignMode) return;

DesignMode

person GraeningM    schedule 14.03.2012

Похоже, вы пытаетесь загрузить какой-то xml в конструктор формы или в любой из конструкторов дочернего элемента управления. Любое исключение, вызванное одним из конструкторов, может привести к этой проблеме.

person aamir    schedule 27.09.2011

Если у вас есть что-то в конструкторе формы, и он выдает исключение, вы получаете странное поведение. Сохраните InitializeComponent () в ctor формы и, если возможно, перенесите остальную часть инициализации в обработчик событий Form_Load ().

Я видел эти ошибки об отсутствии корневого элемента. Иногда действительно не читается основная информация, предоставленная исключением. Возможно, вам поможет публикация вашего XML-файла, возможно, в нем действительно отсутствует корневой элемент:

<?xml version="1.0 .... >
<MyRootElement>
    <Child>
     </Child>
</MyRootElement>
person Lord of Scripts    schedule 10.02.2012

Используете ли вы какой-либо сторонний инструмент или что-то, что вы настроили в панели инструментов, сработало? Я столкнулся с этой проблемой, когда обновил сторонний набор инструментов или удалил что-то из панели инструментов.

person sajoshi    schedule 16.02.2011

Я видел это несколько раз и несколько раз ставил меня в тупик. Вы делаете какие-либо вызовы из своего конструктора, кроме InitializeComponent ()?

Переместите их в раздел «Показано» формы (или «Загрузить»), конструктор вызывается при загрузке дизайна. Скорее всего, элементы Infragistics пытаются загрузить не готовый XML.

У вас есть какие-либо UserControls в вашей форме? Они также будут выполняться против Конструктора во время разработки и вызывать хаос.

person Paul Talbot    schedule 03.06.2011

TabFlowView_ActiveTabChanged, ваш метод или это внутри инфраструктуры? Что-то в этом методе пытается загрузить xml, что дает сбой.

Если это ваш код, перейдите в начало метода и посмотрите, решит ли он его:

    if (DesignMode)
        return;
person Steven P    schedule 27.01.2012