【问题标题】:Debugging dependency injection in .NET在 .NET 中调试依赖注入
【发布时间】:2014-01-09 21:36:40
【问题描述】:

使用 DI 时,由于到处都有很多接口,因此更难阅读代码。即,您不能只在 Visual Studio 中按 F12(转到定义),因为这只会将您带到界面。您需要知道配置为使用哪个类。

是否有插件或类似的东西可以让这更容易? 你们是如何解决这个问题的?

【问题讨论】:

  • 购买 ReSharper 并与 Alt + End 成为朋友。
  • 这个问题还没有被问到。我知道你可以使用 resharper,但是当你使用 DI 时它没有帮助。 Resharper 不知道配置了哪个实现类,它只会列出实现该接口的所有类。我希望它带我去配置的课程。我还问过你们是如何解决这个问题的。
  • @Thomas,你有多少替代实现?根据我的经验,我想要的通常是实际的生产实现或测试模拟,所以毫无疑问。
  • 就是你说的差不多两个实现。不过没关系,还是需要找到有实现的文件,手动打开。这需要时间,你会失去焦点。我知道 resharper 为您提供了一个列表,您可以在其中选择实施。还有其他选择(免费)吗?

标签: .net visual-studio dependency-injection


【解决方案1】:

在 Visual Studio 2015 及更高版本中,您可以按 CTRL + F12 如果只有一个则直接跳转到实现,否则将提示列表可供选择的实现。这使您可以轻松地在 IDE 中导航代码。

ReSharper 有一个名为 Agent Mulder 的插件,它将 ReSharper 与依赖注入库集成在一起。它允许您查看正在使用的类,并允许您直接跳转到接口的配置或其实现。

但老实说,使用 DI 调试代码并没有改变,因为您仍然可以在调试时单步执行方法调用,就像您习惯的那样。

我发现,在一个设计良好的应用程序中,我发现自己在开发新功能的同时浏览代码时更少地从一个类跳到另一个类。这通常会发生,因为我为该功能编写的新类可以合理地工作,而无需了解其依赖关系。这并不是说 DI 会立即导致设计良好的代码,但它只是工具箱中的另一个工具,可以帮助使代码更易于维护。

但即使浏览代码和调试会变得(有点)困难,能够插入新功能、添加削减成本的问题以及能够测试应用程序将对整体质量和应用程序的可维护性。

【讨论】:

  • 谢谢,会检查的。在浏览其他人编写的代码时,我主要对此感兴趣。例如,在将应用程序从项目接管到维护时。能够在不经常调试的情况下导航代码很重要。根据我的经验,应用程序设计不佳是很常见的:(
  • @Thomas:我同意这一点。但至少您似乎正在研究实际执行 DI 的代码库。就是这样:-)
猜你喜欢
  • 1970-01-01
  • 2016-05-22
  • 1970-01-01
  • 2020-12-20
  • 1970-01-01
  • 1970-01-01
  • 2021-07-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多