W moim programie tworzę dynamiczne wyrażenia lambda, a następnie kompiluję je dla delegatów. Delegaci ci są następnie wywoływani w celu wyodrębnienia informacji z moich podmiotów. Niektórzy z delegatów mogą zgłaszać wyjątki, przyjąłem wyjątek, gdy dzwonię do delegata. Włączyłem opcję "Włącz tylko mój kod" i zastosowałem atrybut [DebuggerNonUserCode] do miejsca, w którym tworzona jest LambdaExpression, gdzie została skompilowana i gdzie jest wywoływana. Ale ponieważ w sekcji Debug> Exceptions> Wyjątki dla środowiska wykonawczego języka wspólnego zaznaczono pole wyboru Thrown, studio graficzne zawsze zatrzymuje się na błędzie, co jest poważną niedogodnością dla programistów.Zapobieganie zatrzymywaniu się debuggera w wyjątku w skompilowanej LambdaExpression
Wygląda na to, że [DebuggerNonUserCode] powinien jakoś zostać zastosowany do skompilowanego uczestnika, ale jak? Lub jakiejkolwiek innej sugestii?
Dzięki.
Czy to nie zatrzymuje się na wyjątku pierwszej zmiany? Można je wyłączyć osobno. – CodingBarfield
Nie, zawsze zatrzymuje się przy błędzie, a nie tylko za pierwszym razem. – Alireza
Czy na pewno wyjątek jest gdzieś przechwytywany. Jeśli istnieją nieklasowane wyjątki, które spowodowałyby awarię aplikacji, Visual Studio zawsze wyświetla komunikat o wyjątku. – CodingBarfield