6

ここで明らかな何かが欠けているような気がするので、遠慮なく指摘してください。

私の問題を説明するための簡単な単体テストがあります。

        [Test]
    public void DynamicTest()
    {
        dynamic myDynamic = new ExpandoObject();
        myDynamic.Prop = "abc";
        Assert.AreEqual("abc",myDynamic.Prop);
    }

単体テストを実行すると合格します。ここまでは順調ですね。

単体テストをデバッグすることを選択した場合 ([デバッグ] -> [VS の例外] ですべての CLR 例外にチェックを入れます)、RuntimeBinderException が表示されます。

ここに画像の説明を入力

致命的ではないので、F5 キーを押して続行してもテストは成功しますが、これは間違っているようです。ここで何か間違ったことをしていますか?アプリケーションの一般的な使用中にこれらの例外が発生するのはかなり面倒です。または、RuntimeBinderException のボックスのチェックを外して、これを無視する必要がありますか?

4

1 に答える 1

12

CLR 例外がスローされたとき(つまり、最初のチャンス) に処理されず(つまり、2 番目のチャンス)、デバッガーが中断するように設定しています。明らかに、これをオフにすると消えますが、コードからのみ初回例外を表示したい場合は、[マイ コードのみ] オプションを有効にできます。Just My Code を有効にすると、デバッガーは、コードを通過する場合に最初の例外でのみ中断します。これらのオプションは、ユーザーに対するアプリケーションの動作には影響しません。アタッチされたときのデバッガーの動作のみに影響します。

于 2013-02-22T04:13:21.907 に答える