如何获取C#类中使用的所有系统类型或内置类型

如何获取C#类中使用的所有系统类型或内置类型,c#,roslyn,roslyn-code-analysis,C#,Roslyn,Roslyn Code Analysis,我试图列出C#类中使用的所有系统类型。比如说, class Program { static void Main(string[] args) { int i = 0; Console.WriteLine(i.ToString()); } private void SomeMethod(float parm1, double param2) { Assembly assembly = Assembly.Loa

我试图列出C#类中使用的所有系统类型。比如说,

class Program
{
    static void Main(string[] args)
    {
        int i = 0;
        Console.WriteLine(i.ToString());
    }
    private void SomeMethod(float parm1, double param2)
    {
        Assembly assembly = Assembly.LoadFrom(@"AssemblyName");
    }
}
我想在这里列出

  • Int32
  • 控制台
  • 空虚
  • 装配
  • 浮动
  • 双重的
  • 如何做到这一点?

    研究


    这是否可以编译?@Sadiq:抱歉,现在我已经编辑了这个问题。您可以使用反射迭代成员(方法和属性)并查找必要的类型信息。正是
    int
    部分让这个问题变得棘手。我认为这里的回答者没有抓住你问题的重点。好问题,+1您如何定义“系统类型”?因此您可以将“系统类型”的条件定义为“它在程序集中定义”或“它在由Microsoft密钥签名的程序集中定义”或其他一些可能的方式。这将只返回基本基元类型。类型“Assembly”和“Void”可以与此一起使用。您需要在Assembly列表中循环。var assemblies=AppDomain.CurrentDomain.GetAssemblies();或来自GAC的所有程序集
    typeof(int).Assembly.GetTypes().Where(t => t.IsPrimitive);