使用反射在文件中查找特定类?

时间:2010-01-12 08:35:02

标签: c# reflection find

我用谷歌搜索,有人找到答案并联系但它已经死了。如何在特定文件中找到特定的类?我发现的海报问了这个问题并找到了如何在命名空间中完成它但我想找到一个特定于文件的海报。这个问题是回答我other question,但现在我想到了这个我想知道答案。

3 个答案:

答案 0 :(得分:2)

这样的东西?

string path = "INSERT PATH HERE";

var assembly = Assembly.LoadFile(path);
foreach (var type in assembly.GetTypes())
{
    Debug.WriteLine(type.Name);

    // do check for type here, depending on how you wish to query
}

答案 1 :(得分:1)

我不确定如何将文件名存储为编译汇编的一部分。其他选项是您可以使用VS IDE生成的PDB文件来获取某个扩展名的源文件。

这是pdb文件的一些内部结构。

http://www.informit.com/articles/article.aspx?p=22685

一旦解析了文件,就可以使用符号并查看源定义。

我很高兴知道其他方法。

答案 2 :(得分:0)

如果要查找类的源代码,请使用Visual Studio中的“转到定义”选项。

编译代码后,它不会安排在文件中,而是安排在名称空间和程序集中。如果可以找到一个类源自哪个源文件,则必须循环遍历所有类并查找它。