您是否有一种技术可以轻松从C#for asp.net编译的代码库中提取所有命名空间和方法等?
我基本上希望能够打印所有可用的命名空间,方法等,以便我可以决定如何重构。
答案 0 :(得分:2)
我不知道是否有方便的工具,但您可以在编译时选择输出xml文件的选项(Project Properties-> Output XML文档文件)。它将列出您可以导入和查询的XML中的所有方法。作为奖励,您还将获得开发人员提供的任何xml评论。
答案 1 :(得分:1)
您可以在对象浏览器中获取所有类的树形图
使用快捷方式Ctrl+W, J
打开对象浏览器。
答案 2 :(得分:0)
有一个名为NDepend的商业工具可以让您以多种方式查询代码,当然也支持您提到的具体示例。
如果这是一次性任务,也许试用版的功能非常丰富,可以满足您的需求。或者也许你会意识到它有多棒并最终购买副本(:(我与NDepend没有任何关系,我只是喜欢这个工具背后的概念)。
答案 3 :(得分:0)
.NET Reflector非常适合这一点。大约一个星期前它是免费的。我相信你仍然可以在某处找到免费版本或使用免费试用版。
来自网站:
.NET Reflector是一个程序集浏览器 对于Microsoft .NET平台而言 可以用来探索,分析, 反编译,并调试内容 任何.NET程序集。 .NET Reflector 结合了类浏览,静态 分析和高级反编译 帮助.NET开发人员了解如何 图书馆工作或如何互动 与.NET的其他部分 应用。 .NET Reflector会 反编译为高级C#,VB,IL和 一些F#功能。
答案 4 :(得分:0)
根据您使用的Visual Studio版本,您可以创建一个可打印的类图(我认为它可用于除Express之外的所有版本)。在项目中,添加新文件并从“常规”类别中选择“类图”。然后将类和接口文件拖到它的设计图面上。
答案 5 :(得分:0)
我会通过反思自己去做。同样,这很大程度上取决于您的要求。
// get assembly from Assembly.LoadFrom or other static overload
var types = assembly.GetTypes();
var typeNames = (from t in types
select t.FullName);
var namespaces = (from n in types
select n.Namespace).Distinct();
答案 6 :(得分:0)
SandCastle将为您创建类/方法的好帮助文件以及开发人员使用xml注释所做的任何评论。