2012-05-10 12 views
1

Silverlight 5アプリケーションでは、有用なスタックトレースがないArgumentNullExceptionが発生しています。私は単に参照してください:Silverlight例外のトラブルシューティング

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を無効にしました。デバッガはすべての例外に対して破棄されるように設定されています。私はちょうどそれがどこから来ているのか把握する方法を見つけることができません。リソースを適用するSilverlightスレッドのバックグラウンドでなければならない、または自動的に何かを行う必要がありますが、何が分からないのでしょうか。

具体的なシナリオは、XAMLまたはコードを通じてコン​​トロールを作成することです。 XAMLを通じて、正常に動作します。コードを使ってそれらを作成すると、私はこの神秘的な例外を得ます。

ヘルプ!

+0

あなたのコードにDictionary .FindEntryへの呼び出しがありますか? –

+0

私のコードでFindEntryを直接呼び出すことはありません。だから私はそれがXAMLエンジンの裏で行われたものなのか疑問に思った。 –

+0

ツールヒントが含まれていますか? –

答えて

-1

辞書をロックして、常に1つのスレッドだけがアクセスしていることを確認してください。この例外は、複数のスレッドが同じディクショナリにアクセスして破損した場合に発生し、内部構造にバケット内にヌルエントリが存在する場合に発生する可能性があります。

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

1

私は同じisssueに直面し、私は私の場合には、障害の正確な理由を考え出しました。 Telerik RadRichTextBoxRibbonUIコントロールを使用していて、XAMLのプロパティに値{x:Null}が割り当てられています。 {x:Null}を文字列値に置き換えたときに問題は解決されました。

関連する問題