1

在我的 Silverlight 5 应用程序中,我得到一个没有有用堆栈跟踪的 ArgumentNullException。我只是看到:

System.ArgumentNullException occurred
Message=Value cannot be null.
Parameter name: key
StackTrace:
   at System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
   at System.Windows.dll!MS.Internal.JoltHelper.FireEvent(System.IntPtr unmanagedObj, System.IntPtr unmanagedObjArgs, int argsTypeIndex, int actualArgsTypeIndex, string eventName, uint flags) + 0x31b bytes   

尽我所能,我找不到任何未捕获的异常来捕获!我已经禁用了 Just My Code,我将调试器设置为 Break on Thrown 以处理所有异常,并且我已经在我的代码中寻找可能发生这种情况的任何地方。我只是找不到任何方法来弄清楚它来自哪里。它必须是应用资源的后台 Silverlight 线程,或者以其他方式自动执行某些操作,但我不知道是什么。

具体方案是通过 XAML 或通过代码创建控件。通过 XAML,它们可以正常工作。当我通过代码创建它们时,我得到了这个神秘的异常。

帮助!

4

2 回答 2

1

我遇到了同样的问题,我找出了我的案例失败的确切原因。我们正在使用 TelerikRadRichTextBoxRibbonUI控件,并且有人为 XAML{x:Null}中的ApplicationName属性分配了值。当我用{x:Null}字符串值替换时,问题就解决了。

于 2013-03-29T06:36:46.057 回答
-1

在字典上使用锁以确保在任何给定时间只有一个线程在访问它。当多个线程访问同一个字典并损坏它时,可能会发生此异常,从而导致内部结构在存储桶中具有空条目。

这个 Dictionary<TKey, TValue> 异常怎么可能发生?

于 2013-01-24T16:35:44.923 回答