Странное исключение типа "Плохие флаги на конструкторе делегата". - PullRequest
0 голосов
/ 19 мая 2010

Кто-нибудь видел это исключение раньше, у Google нет ни одного поста об этом исключении. Код, который вызывает ошибку, является простым дополнением.

Items.Add(item);


System.TypeLoadException: Bad flags on delegate constructor.
   at System.Windows.Forms.ListView.Sort()
   at System.Windows.Forms.ListView.InsertItems(Int32 displayIndex, ListViewItem[] items, Boolean checkHosting)
   at System.Windows.Forms.ListView.ListViewNativeItemCollection.Add(ListViewItem value)
   at System.Windows.Forms.ListView.ListViewItemCollection.Add(ListViewItem value)

Ответы [ 3 ]

1 голос
/ 14 октября 2011

Причина - ошибка System.Windows.Form v2.0, которую я обнаружил сегодня утром (это исправлено в System.Windows.Form v4.0).

Для меня это произошло, когда мой код добавляет Item к ListBox, когда процесс хостинга завершается. Поле частного экземпляра ListBox.listItemsArray имеет значение null, и это вызывает NullReferenceException. Я не знаю точно, почему ListBox.listItemsArray имеет значение null, но я предполагаю, что это связано с проблемой создания дескриптора.

Для меня обходной путь был легким, так как try/catch было достаточно, потому что процесс все равно останавливался. Вы, конечно, можете решить проблему с функцией декомпиляции Reflector, как я:

enter image description here

0 голосов
/ 19 мая 2010

Я думаю, что это случай поиска по номеру ошибки 80131506. Я нашел несколько ссылок:

Если ваше приложение написано с использованием NET 2 и, возможно, ASP.NET, но, что более важно, выполняется под профилем пользователя, тогда посмотрите здесь:

Исправление Microsoft

Я также сталкивался с кем-то, из-за чего SQL Developer на серверной машине вызывал проблемы: Проблемы с SQL DEvloper

Говорят также об этой проблеме, возникающей на 64-битных машинах , показанной здесь . Обычно включает доступ к адресам памяти за пределами 4 Гб.

0 голосов
/ 19 мая 2010

Я могу дать вам общий совет о том, как решать внутренние исключения. Возьмите инструмент Reflector (google it) и зайдите в метод System.Windows.Forms.ListView.Sort() и попытайтесь понять, какие условия приводят к исключению. это помогло мне много раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...