C# 导出给定命名空间的类名、方法名
如何导出c#中给定名称空间的类名、方法名,而不将其作为名称空间/代码的一部分,而优先导出txt文件。代码不应是要检索其类、方法名称的代码的一部分。仅反射:C# 导出给定命名空间的类名、方法名,c#,java,namespaces,C#,Java,Namespaces,如何导出c#中给定名称空间的类名、方法名,而不将其作为名称空间/代码的一部分,而优先导出txt文件。代码不应是要检索其类、方法名称的代码的一部分。仅反射: string ns = "System.Text"; var types = from asm in AppDomain.CurrentDomain.GetAssemblies() from type in asm.GetTypes() where type.Namespace == ns
string ns = "System.Text";
var types = from asm in AppDomain.CurrentDomain.GetAssemblies()
from type in asm.GetTypes()
where type.Namespace == ns
orderby type.Name
select type;
foreach(var type in types)
{
Console.WriteLine("{0} ({1})", type.Name, type.Assembly.FullName);
// and list the methods for each type...
foreach (var method in type.GetMethods().OrderBy(x => x.Name))
{
Console.WriteLine("\t{0}", method.Name);
}
}
注意,在上面我正在查看当前应用程序域中所有加载的程序集;如果合适的话,您也可以查看单个程序集。您能给我们一些代码看看您尝试了什么吗?不,我完全是空白。尚未开始编写代码。是否对此主题进行了任何研究?找到了一些指导使用反射、程序集的页面。但我无法理解他们。我想在这个链接中更详细的回答会有所帮助。此代码按预期工作。谢谢。关于如何将其保存为文本文件的任何线索?
使用(var output=file.CreateText()){…}
并将其写入输出
,而不是控制台
。您能否简要介绍如何使用单个程序集?因为此答案解释了“System.text”并与之配合使用名称空间我添加了对另一个项目的引用,并以ns给出了它的名称空间。但不起作用。我哪里出错了???@cooltoad要使用一个单独的程序集,您可以从type in typeof(SomeTypeYouKnow.assembly.GetTypes()开始使用,其中SomeTypeYouKnow
在您正在谈论的程序集中。它当前不工作的原因是没有加载您正在谈论的程序集。typeof
将强制加载它。