是否有(更好的)方法来查找属性设置器的所有引用?

Ben*_*Ben 26 c# visual-studio-2010 visual-studio

Visual Studio的"查找所有引用"功能很好地用于查找对属性的引用,并且当它发生时,"调用层次结构"也会这样做 - 实际上它更好,因为它通过调用方法对它们进行排序.

然而我的问题是这些方法都没有区分setter和getter,所以我简化为使用"PropertyName ="的find-in-files.

这似乎是一个倒退(显然不会找到使用"PropertyName + = value"或类似的代码),所以我想知道我是否错过了一个简单的方法来说服Visual Studio的"调用层次结构"功能来工作特定的财产制定者或吸气者?

And*_*ndy 24

Resharper可以为您做到这一点.

没有R#,一种方法是临时将setter设置为private并重新编译.这会在您尝试设置的任何地方出现错误.不漂亮,但比我能想到的任何其他方法都快.

  • @Ben,他告诉你将setter更改为`private set`,然后重建并查找编译错误.这将在没有任何重构工具的情况下起作用. (2认同)
  • 比设置为私有更好的是完全删除设置器,以便可以找到同一类中的访问(如果需要)。此外,可以编写仅设置属性(但如果在已提交的代码中执行,则准备被射击!)以通过编译错误查找对 getter 的所有访问。非常烦人的是,Visual Studio 拒绝与我分享它肯定知道的信息(哪些访问调用 getter,哪些调用 setter!)。 (2认同)

小智 5

在Visual Studio 2019中可以使用“查找所有引用”功能按“种类”进行排序和筛选。该功能是在Microsoft 开发人员社区论坛上请求的

带有“种类”列的“参考”窗口显示在最右侧,以橙色框突出显示。 带有“种类”列的引用窗口