在Visual Studio 2010(或2012)中,有一种方法可以在代码中找到提及引用的dll中定义的任何类/方法的所有引用。
目前我使用了两个进程(取决于具体情况):
Object Browser
中打开引用,然后扩展到它的命名空间,对于每个命名空间,我进行手动搜索,但这并不总是有助于查找所有引用,因为遗留代码具有跨越多个程序集的相同名称空间,需要过滤很多噪音。这些都不是真正理想的解决方案,有没有更简单的方法呢?也许是通过VS扩展。
答案 0 :(得分:7)
如果您安装Resharper,可以找到它:
展开References
并选择Find code Dependent on Module
结果显示为:
答案 1 :(得分:3)
没有Resharper,但你确实有Sublime Text?
在Sublime Text中,选择'打开文件夹',然后选择包含解决方案的文件夹。然后选择菜单项查找 - > 在文件中查找...
在'其中:'字段,输入:
*.scsproj
然后在'查找:'字段,搜索字符串
Include="[full namespaced name of library]"
例如:
Include="System.Xml.Linq"
将在解决方案中找到引用 System.Xml.Linq dll的所有项目。
答案 2 :(得分:2)
没有任何扩展名?
只需编写一段代码......最简单......我发现通过代码编辑项目文件非常容易..
private static List<string> FindAllRefrences(ref int ctr, string dir, string projectToSearch)
{
List<string> refs = new List<string>();
foreach (var projFile in Directory.GetFiles(dir, "*.csproj", SearchOption.AllDirectories))
{
if (projFile.IndexOf(projectToSearch, StringComparison.OrdinalIgnoreCase) >= 0)
continue;
//var t = false;
var lines = File.ReadAllLines(projFile);
foreach (var line in lines)
{
if (line.IndexOf(projectToSearch, StringComparison.OrdinalIgnoreCase) >= 0)
{
ctr++;
refs.Add(projFile);
break;
}
}
}
return refs;
}