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

ディクショナリのロックを使用して、常に 1 つのスレッドだけがディクショナリにアクセスするようにします。この例外は、複数のスレッドが同じディクショナリにアクセスして破損した場合に発生する可能性があり、内部構造のバケットに null エントリが含まれます。

この Dictionary<TKey, TValue> 例外はどのように可能ですか?

于 2013-01-24T16:35:44.923 に答える