Подавлять сообщения RuntimeBinderException от динамических типов
Недавно я начал использовать частный сервер NuGet для управления внутренними библиотеками моей организации. Это означает, что для того, чтобы войти в наш собственный код, который находится в библиотеке, мне нужно отключить "Включить только мой код" в параметрах отладки, так как мы больше не имеем в виду проекты. Это довольно сложный MVC-проект, который использует динамические типы и ExpandoObjects
в дополнение к ViewBag
. Я получаю два RuntimeBinderExceptions
для каждого использования динамического типа... что много. Это похоже на нормальное поведение из того, что я прочитал. Нормальным может быть, но полезным это не так.
Моя первая мысль заключалась в том, чтобы отключить это конкретное исключение в диалоговом окне Debug- > Exceptions. Исключение не существует. Я не могу понять, как можно выйти за пределы прямых ссылок на проекты, не открывая себя за этими исключениями. (И всевозможные другие низкоуровневые рамки исключений, о которых я не хочу слышать, но это самый большой преступник).
Какой лучший способ справиться с этим?
Изменить: Это проблема. Как остановить это с отключенным "Включить только мой код"?
![enter image description here]()
Ответы
Ответ 1
Вы можете добавить дополнительные имена "исключений" (существующие в вашем собственном коде или других библиотеках)... до тех пор, пока вы знаете полное полное имя исключения.
Управление исключением с помощью отладчика
https://msdn.microsoft.com/en-us/library/x85tt0dd.aspx
В Visual Studio 2010
В диалоговом окне Debug | Exceptions...
.
![введите описание изображения здесь]()
- Используйте кнопку
Add
, чтобы добавить новое исключение в группу Common Language Runtime Exceptions
и называть его Microsoft.CSharp.RuntimeBinder.RuntimeBinderException
![введите описание изображения здесь]()
- то просто убедитесь, что
Thrown
и User-Handled
НЕ отмечены галочкой - таким образом, исключение первого случайного исключения игнорируется, а не ловутся отладчиком.
В Visual Studio 2017
Через панель Debug | Windows | Exception Settings...
![введите описание изображения здесь]()
![введите описание изображения здесь]()
- Использовать + для добавления нового имени исключения
![введите описание изображения здесь]()
- убедитесь, что оно не указано