我想通过在我的动作方法执行之前执行的某些方法中放置断点来了解ASP.NET MVC的模型绑定器的工作原理.例如将它们放在DefaultModelBinder类中.我经历了将一些MVC的项目源添加到我的解决方案(如System.Web.MVC,System.Web.Razor,System.Web.WebPages,System.Web.Helpers …)的路由,所以我可以运行我的版本他们并放置我喜欢的断点,但是我收到一个错误“无法加载文件或程序集”System.Web.Mvc“或其中的一个依赖项,强名称签名无法验证”.我正在使用引用System.Web.MVC的第三方签名组件,我认为这是导致错误的原因.
在我的代码运行之前,还有其他方法可以跟踪到System.Web.MVC代码吗?我知道设置Visual Studio以从符号服务器获取相关符号,但是我不知道如何在我的代码运行之前在.NET代码中放置断点.
解决方法
我能够设置断点,他们会受到打击.
>设置VS以从符号服务器加载符号.>在你的应用程序中设置一个断点>当断点被击中时,打开“模块”窗口并设置System.Web.Mvc.dll以自动加载其符号文件>在调试模式下再次运行应用程序.当断点被击中时,打开“调用堆栈”窗口.选择一个有趣的行在System.Web.Mvc.dll.这些线应该是对比的,这意味着它们的来源可用(我猜).右键单击该行,然后选择“转到源代码”.打开一个对话框,希望您找到源文件.>我有System.Web.Mvc的源代码,所以我打开源文件.>在其中设置一些断点.>在调试模式下再次运行应用程序.现在System.Web.Mvc中的这些断点将被击中.(我假设我可以在VS中的System.Web.Mvc中打开任何源文件,并在其中设置断点,并且它们将被命中.我假设断点得到命中,即使我的文件与原始位置不在同一位置在符号文件中,因为我需要“要求源文件与原始版本完全匹配”设置已关闭,我需要验证这些假设)