Есть ли у кого-нибудь советы по отладке исключений в блоке инициализатора объекта C#? Синтаксис инициализатора объекта в основном все или ничего, что может затруднить устранение неполадок внутри запроса LINQ. Не удалось ли вы разбить создание объекта на отдельный метод, есть ли что-нибудь, что я могу сделать, чтобы увидеть, какой набор свойств генерирует исключение?Отладка инициализатора объектов C#
ответ
Отключить опцию перехода по средствам настройки свойств [Сдвиг по свойствам и операторам (только управляемый)] позволяет вам войти в настройки свойств.
В противном случае наилучшим вариантом является просто разбить его и отладить его вне оператора LINQ. Вы можете перенести свои параметры инициализации в анонимный тип в linq и построить свой объект (-ы) вне вашего оператора linq для целей отладки.
Выньте его из блока инициализатора объекта, в котором ваша настройка каждого свойства индивидуально. Таким образом, вы действительно можете войти в код.
Установили ли вы, чтобы VS нарушался, когда генерируется исключение? (по умолчанию происходит разрыв только при необработанных исключениях). Отладка | Исключения, и проверить «бросили».
Возможно, это не ответ на ваш вопрос, но это может помочь в отладке.
Кроме того, вы можете временно вывести код из блока инициализатора (только для отладки), а затем, если хотите, вы можете восстановить блок инициализатора, как только у вас будет действующий код.
Не могли бы вы объяснить, что вы подразумеваете под «обертыванием параметров инициализации в анонимный тип»? Я каким-то образом передаю анонимный тип конструктору или просто создаю метод фабричной утилиты, который присваивал бы свойства? – technomalogical
Прямо сейчас, из его звуков, вы используете результаты своего запроса для создания своих объектов, и вы считаете, что это вызывает ошибку (по построению объекта). Вместо этого просто верните результаты запроса, а затем создайте свои объекты на отдельном этапе (используя результаты), чтобы избежать блокирования инициализатора объекта. –
Но можно ли каким-то образом передать анонимный тип конструктору? – wcm