Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取所有使用类型的列表?_C#_.net Assembly - Fatal编程技术网

C# 如何获取所有使用类型的列表?

C# 如何获取所有使用类型的列表?,c#,.net-assembly,C#,.net Assembly,我想知道它们是否是获取代码中所有使用类型列表的一种方法 如果我加载一个程序集,我不必对它使用所有类型 因此,对每个程序集使用AppDomain.CurrentDomain.GetAssemblys和getTypes不会提供正确的信息 我只需要在代码中使用的类型 我的意思是,对于代码中使用的类型,出现以下情况: 如果我可以访问某个类型的静态字段,或者如果我实例化了该类型 基于字符串中的名称通过反射实例化类型是否算数?如果是这样,答案可能是所有类型,因为字符串可能是从外部提供的,因此可以是任何类型。

我想知道它们是否是获取代码中所有使用类型列表的一种方法

如果我加载一个程序集,我不必对它使用所有类型

因此,对每个程序集使用AppDomain.CurrentDomain.GetAssemblys和getTypes不会提供正确的信息

我只需要在代码中使用的类型

我的意思是,对于代码中使用的类型,出现以下情况:

如果我可以访问某个类型的静态字段,或者如果我实例化了该类型


基于字符串中的名称通过反射实例化类型是否算数?如果是这样,答案可能是所有类型,因为字符串可能是从外部提供的,因此可以是任何类型。同样,通过反射实例化一个类型也可以按照您提到的方式进行,通过选择通过GetTypes获得的类型。这通常是在插件系统或其他动态绑定场景中完成的。是的,这是基于反射的,但我加载程序集。我将使用GetType方法中的一种。此方法还依赖于其他类型,因此我需要知道此类型,它是递归的。如果程序集中的任何其他类型我不使用,或者该类型不依赖于它,那么我不必计算它。是的,您可以这样做,但是您正在分析的程序集中可能会实例化或使用带有反射的类型。是否要统计此类事件?是,所有实例化或调用静态变量都将是递归的。