排除背景Silverlight异常

时间:2012-05-10 02:50:01

标签: c# silverlight xaml argumentnullexception

在我的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 in Thrown以用于所有异常,并且我在我的代码中找到了可能发生这种情况的任何地方。我找不到任何方法来弄清楚它来自哪里。它必须是一个后台Silverlight线程应用资源,或者自动执行某些操作,但我无法弄清楚是什么。

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

帮助!

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:-1)

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

How is this Dictionary<TKey, TValue> exception possible?