获取系统命名空间中的所有.net可用类型

bil*_*bob 2 c# system.reflection

是否有函数或使用反射方法来获取所有系统类型.

像那些: - System.Int64

  • System.Byte[]

  • System.Boolean

  • System.String

  • System.Decimal

  • System.Double

  • ...

我们有一个旧的enum存储一些数据类型.我们需要将它们转换为.net types.

Jon*_*eet 7

假设你只想要类型mscorlib,很容易:

var mscorlib = typeof(string).Assembly;
var types = mscorlib.GetTypes()
                    .Where(t => t.Namespace == "System");
Run Code Online (Sandbox Code Playgroud)

但是,这不会返回byte[],因为这是一种数组类型.它也不会返回不同程序集中的类型.如果你有多个你感兴趣的程序集,你可以使用:

var assemblies = ...;
var types = assemblies.SelectMany(a => a.GetTypes())
                      .Where(t => t.Namespace == "System");
Run Code Online (Sandbox Code Playgroud)

  • @billybob:那么你应该准确指出你想要的东西.我已经回答了你问过的问题:"在系统命名空间中获取所有.net可用类型" - 它真的根本不清楚你真正想要的是什么,但听起来它不是*你实际要求的...... (2认同)