【问题标题】:How to load namespace System classes?如何加载命名空间系统类?
【发布时间】:2012-04-11 04:09:57
【问题描述】:

我没什么问题。我在网上找到了这个:

Type t = typeof(MyClass);
MethodInfo[] mi = t.GetMethods();

有什么方法可以对命名空间做同样的事情吗?或者有没有其他方法可以获取所有具有名称和 System.Type 实例的类?很久以前,我发现了一些关于列出图书馆的东西。请任何人帮助我。

【问题讨论】:

  • 您可以使用这个小技巧从系统程序集中获取所有类:typeof(string).Assembly.GetTypes()
  • 好的。但是,如果我需要从 System.IO 中获取它,我该怎么办?
  • 请把它写成答案。我会标记的。
  • 哦,System.IO 的东西也会在那里:mscorlib 有 2500 多个课程。

标签: c# oop class namespaces system


【解决方案1】:

您可以使用这个小技巧从mscorlib 程序集中获取所有类:typeof(string).Assembly.GetTypes()。您可以通过FullNameNamespace 属性对其进行进一步过滤。

【讨论】:

    【解决方案2】:

    如果您想获取特定命名空间中的所有类,您可以执行以下操作:

    var types = from type
                in AppDomain.CurrentDomain.GetAssemblies().SelectMany(a => a.GetTypes())
                where type.Namespace == "System"
                select type;
    

    这将查找命名空间System 中任何类型的所有已加载程序集。您当然可以将“System”更改为您喜欢的任何其他内容,例如“System.IO”。

    【讨论】:

    • 非常感谢。你的解决方案看起来不错,但他是第一个。
    猜你喜欢
    • 2016-12-04
    • 2014-10-10
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    • 1970-01-01
    • 2011-07-23
    • 2013-09-07
    • 2011-12-30
    相关资源
    最近更新 更多