在大型代码库中查找string ==运算符的用法

Car*_*000 18 c#

我有一个请求,要求研究==在一个相当大的C#代码库中使用String.Equals()明确指定区分大小写的方法调用替换所有字符串运算符用法的可行性.

但是,没有太多运气找出识别代码库中所有事件的方法.

  • 搜索"=="显然会发现除了比较字符串之外的无数类型的实例.
  • 似乎没有StyleCop规则来找到它.
  • 也不是ReSharper规则.
  • 作为最后的手段,我尝试将程序集加载到JustDecompile并查找所有用法,System.String.op_Equality但似乎没有在LINQ表达式内部使用,例如.Where(x => x.StringField == stringField)

所以我有点难过,想知道是否有人对如何搜索这些讨厌的比较有任何想法?

Mar*_*len 11

您可以使用Resharper查找所有用法.这对我有用:

  1. 右键单击代码中任意位置的字符串类型.单击转到声明.
  2. Resharper将从.NET框架打开string.cs
  3. 向下滚动operator ==并右键单击,选择查找用法

这需要一些时间,但你会得到一个很好的用法列表,在树视图中排序.我在VS2010中使用Resharper 6.1尝试了这个.

UPDATE

有一种更简单的方法:

  1. 选择==字符串比较
  2. 右键单击选择,然后选择" 查找高级用法"
  3. 在find下的对话框中,仅选中'Usages'并将范围设置为'Solution'以过滤掉其他库中的任何引用.