Sam*_*abu 2 c# powershell powershell-2.0
我的经理让我获取项目中每个.cs文件中可用的函数列表.
但.cs文件的数量是巨大的.
手动查看很难.
有没有办法通过编写脚本或代码在.cs文件中找到函数名?
使用反射.如果所有文件都在项目中,那么您可以使用:
Type[] types = Assembly.GetExecutingAssembly().GetTypes();
foreach (Type toCheck in toProcess)
{
MemberInfo[] memberInfos = toCheck.GetMembers(BindingFlags.NonPublic | BindingFlags.Public | OtherBindingFlagsYouMayNeed);
//Loop over the membersInfos and do what you need to such as retrieving their names
// and adding them to a file
}
Run Code Online (Sandbox Code Playgroud)
如果将项目编译为dll,则可以使用:
Assembly assembly = Assembly.LoadFrom(filePath); //filePath is for the dll
Type[] toProcess = assembly.GetTypes();
//rest of the code is same as above
Run Code Online (Sandbox Code Playgroud)
编辑:如果您希望找到每个物理文件的函数@BAF提及,您将获得程序集的基本目录(通过.CodeBase),然后执行目录树步骤查找所有.cs文件然后您将实现一个解析器,可以在每个文件中区分方法声明(可能还需要一个词法分析器以帮助解决它).两者都没有什么特别困难,但它们确实需要一些工作而且太复杂而不能作为答案包含在这里.至少这是最简单的答案,涵盖了我能想到的所有类型的方法声明,除非有人可以提出更简单的方法.
| 归档时间: |
|
| 查看次数: |
2487 次 |
| 最近记录: |