获取 C# 类名称列表?

Posted

技术标签:

【中文标题】获取 C# 类名称列表?【英文标题】:Get list of C# Classes Names? 【发布时间】:2012-06-10 05:39:04 【问题描述】:

我正在使用 C# windows 窗体实现一个语法高亮,并且想要获取所有名称的列表,我知道这应该手动完成,添加关键字和名称,但我想知道 C# 中是否有一个函数可以帮我做这件事。

【问题讨论】:

什么是“C# 类名称”?你能提供一个例子,也许用伪代码来展示你需要什么? 如DataTable、ViewState、GridView、......等 所以当用户输入类名时,你需要在语法高亮显示类名??你真正想达到什么目标? “我正在使用 C# windows 窗体实现语法高亮” 为什么不编写 Visual Studio 扩展?这比构建自己的语法荧光笔要容易得多。 你能解释一下“CodeCaster”吗,我正在尝试做这样的事情***.com/questions/10892884/…。 【参考方案1】:
  Assembly asm = Assembly.GetExecutingAssembly();
  List<string> namespaceList = new List<string>();
  List<string> returnList = new List<string>();
  foreach (Type type in asm.GetTypes())

    if (type.Namespace == nameSpace)
        namespaceList.Add(type.Name);

    foreach (String className in namespaceList)
    returnList.Add(className);
    return returnList;

【讨论】:

【参考方案2】:

使用反射。

Assembly.GetAssembly(typeof(MyClass)).GetTypes()

【讨论】:

【参考方案3】:

您可以使用反射获取 C#.NET 中所有程序集的列表。

例子:

Assembly mscorlib = typeof(string).Assembly;
foreach (Type type in mscorlib.GetTypes())

    Console.WriteLine(type.FullName);

【讨论】:

【参考方案4】:

您必须使用reflection 来获取 dll 中类的名称。

// Using Reflection to get information from an Assembly:
System.Reflection.Assembly o = System.Reflection.Assembly.Load("mscorlib.dll");
var types = o.GetTypes();

【讨论】:

能否给个简单的例子或参考。 让我在 Google 上为您搜索 ***.com/questions/79693/… - 请参阅 Aku 的最佳答案,+1!

以上是关于获取 C# 类名称列表?的主要内容,如果未能解决你的问题,请参考以下文章

如何在获取之前更改托管对象类名称

获取父类名称? [复制]

有没有办法在运行时在 C++ 中获取基类名称?

从静态上下文中获取测试类名称

Java:在抽象类中创建获取扩展类名称的方法

java中,如何通过实体类名称获取对应的数据表名称