奇怪的typeloadexception“委托构造函数上的坏标志。”

时间:2010-05-19 13:33:08

标签: c# exception

之前有人看过这个例外,谷歌没有关于例外的单一帖子。 引发错误的代码是一个简单的添加。

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 个答案:

答案 0 :(得分:1)

原因是我今天早上发现的System.Windows.Form v2.0错误(在System.Windows.Form v4.0中已修复)。

对我来说,当我的代码在托管进程关闭时向Item添加ListBox时发生了这种情况。私有实例字段ListBox.listItemsArray为空,这会激发NullReferenceException。我不知道为什么ListBox.listItemsArray为空,但我猜它与句柄创建问题有关。

对我来说,解决方法很简单,因为try/catch足够了,因为无论如何这个过程都在关闭。您可以像我一样使用反编译反射器功能来解决问题:

enter image description here

答案 1 :(得分:0)

我可以就如何解决内部异常提供一般性建议。使用名为Reflector的工具(google it)并进入方法System.Windows.Forms.ListView.Sort()并尝试了解导致异常的条件。这对我帮助很多次。

答案 2 :(得分:0)

我认为这是一个搜索错误号80131506的情况。我找到了一些参考文献:

如果您的应用程序是使用NET 2和ASP.NET编写的,但更重要的是在用户配置文件下运行,请查看此处:

Microsoft hotfix

我也遇到过服务器机器上的SQL Developer导致问题的人: SQL DEvloper issues

64位计算机shown here上也出现了这个问题。通常涉及访问超过4Gb的内存地址。