Как разместить точки останова в файле system.web.mvc перед запуском приложения?

Я хотел бы узнать, как работает связующее устройство ASP.NET MVC, помещая точки останова в некоторые методы, которые выполняются до выполнения моего действия. Например, размещение их в классе DefaultModelBinder. Я прошел путь добавления некоторых источников MVC-проектов в свое решение (например, System.Web.MVC, System.Web.Razor, System.Web.WebPages, System.Web.Helpers...), поэтому я могу запускать свои версии из них и разместить точки останова, где мне нравится, но я получил ошибку "Could not load file or assembly 'System.Web.Mvc' or one of its dependencies. Strong name signature could not be verified". Я использую сторонний подписанный компонент, который ссылается на System.Web.MVC, и я думаю, что причиной этой ошибки является.

Существуют ли другие способы отслеживания кода System.Web.MVC перед запуском моего кода? Мне известно о настройке Visual Studio для получения соответствующих символов с серверов символов, но я не знаю, как разместить точки останова в .NET-коде до запуска моего собственного кода.

Ответ 1

Я смог установить точки останова, и они попали бы в цель.

  • Настройте VS для загрузки символов с серверов символов.
  • Установите контрольную точку в своем приложении
  • Когда точка останова ударит, откройте окно "Модули" и установите System.Web.Mvc.dll для автоматической загрузки своего файла символа.
  • Запустите приложение снова в режиме отладки. Когда точка останова будет удалена, откройте окно "Стек вызовов". Выберите интересную строку, которая находится в System.Web.Mvc.dll. Эти линии следует противопоставить, что означает, что их источник доступен (я думаю).
  • Щелкните правой кнопкой мыши по строке и выберите "Перейти к исходному коду". Откроется диалоговое окно, в котором вам нужно найти исходный файл.
  • У меня есть исходный код для System.Web.Mvc, поэтому я открываю исходный файл.
  • Настройте в нем некоторые точки останова.
  • Запустите приложение снова в режиме отладки. Теперь эти точки останова в System.Web.Mvc получат удар.
  • (Я предполагаю, что я могу открыть любой исходный файл в System.Web.Mvc в VS и установить в нем точки останова, и они будут попадаться. Я предполагаю, что также будут удалены точки останова, хотя мой файл не находится в том же месте, что и оригинальное местоположение в файле символов, потому что у меня отключены настройки "Исходные файлы, чтобы точно соответствовать исходной версии". Мне нужно проверить эти предположения)