2012-06-25 3 views
8

私のプログラムでは、動的ラムダ式を作成し、それをデリゲートにコンパイルします。これらのデリゲートは、次に、エンティティから情報を抽出するために呼び出されます。 デリゲートの一部が例外をスローすることがありますが、私はデリゲートを呼び出す例外をキャッチしました。私は "Enable just my code"を有効にし、[DebuggerNonUserCode]属性をLambdaExpressionの作成場所、コンパイル場所、呼び出し場所に適用しました。しかし、[デバッグ]> [例外]> [共通言語ランタイム例外]の[スロー]チェックボックスがオンになっているため、ビジュアルスタジオは常にエラーで停止するため、開発者にとって大きな不便です。コンパイル済みLambdaExpression内の例外でデバッガが停止しないようにする

[DebuggerNonUserCode]は何とかコンパイルされたデリゲートに適用されるはずですが、どのようにする必要がありますか?それとも他の提案ですか?

ありがとうございました。

+2

最初の変更例外で停止していませんか?それらは別々に無効にすることができます。 – CodingBarfield

+0

いいえ、初めてエラーではなくエラーで停止します。 – Alireza

+1

例外はどこかにキャプチャされていますか?アプリケーションがクラッシュするようなキャッチされていない例外がある場合、Visual Studioは常にExceptionメッセージを表示します。 – CodingBarfield

答えて

1

私が知る限り、式を使用して生成された匿名メソッドに属性を適用することはできません。恐らくダイナミック型生成に関しては恐ろしいことです。

しかし、可能な提案は、Debug > Exceptionsの例外メニューに行き、具体的に中断したい例外を選択することです。式が特定の種類の例外をスローする傾向がある場合、それらの例外の破棄を無効にすることができます。

+1

まあ...私は恐ろしい措置を取る可能性があります。正しいリソースへのポインタ? ありがとう – Alireza

関連する問題