首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Assembly.GetExportedTypes vs GetTypes

非常感谢您的提问,我很高兴能够帮助您解答问题。

首先,我们需要了解 Assembly.GetExportedTypesGetTypes 这两个方法的区别。这两个方法都是用于获取程序集中的类型,但是它们的作用范围不同。

GetExportedTypes 方法只返回程序集中公开导出的类型,而 GetTypes 方法返回程序集中所有类型,包括公开导出的和非公开的。

在某些情况下,如果您只需要访问程序集中公开导出的类型,那么使用 Assembly.GetExportedTypes 方法可能更加合适。这是因为它可以避免返回不必要的类型,从而提高程序的性能和安全性。

以下是一个简单的示例,演示如何使用 Assembly.GetExportedTypes 方法获取程序集中公开导出的类型:

代码语言:csharp
复制
Assembly assembly = Assembly.LoadFrom("path_to_assembly");
Type[] exportedTypes = assembly.GetExportedTypes();
foreach (Type type in exportedTypes)
{
    Console.WriteLine(type.FullName);
}

在这个示例中,我们首先使用 Assembly.LoadFrom 方法加载程序集,然后使用 Assembly.GetExportedTypes 方法获取程序集中公开导出的类型,并将它们存储在一个数组中。最后,我们遍历数组并输出每个类型的全名。

需要注意的是,Assembly.GetExportedTypes 方法只返回程序集中公开导出的类型,因此它可能不会包括您需要的某些类型。在这种情况下,您可能需要使用 GetTypes 方法来获取程序集中的所有类型,然后手动筛选出您需要的类型。

希望这个答案能够帮助您解决问题。如果您有任何其他问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C# 性能分析 反射 VS 配置文件 VS 预编译

其他测试请看 C# 直接创建多个类和使用反射创建类的性能 C# 程序内的类数量对程序启动的影响 整个测试的工程我打包放在下面,这个工程的创建代码很简单,我也直接放在下面 测试的工程 C# 性能分析 反射 VS...配置文件 VS 预编译-CSDN下载 如果觉得我的数据很诡异,那么请自己运行一下 创建工程的代码不包括创建测试的工程的框架,测试项目的框架很简单,只需要创建一个空白的控制台项目,在这个控制台项目安装...bermartaPallnirhi = Assembly.GetExecutingAssembly(); foreach (var temp in bermartaPallnirhi.GetTypes...bermartaPallnirhi = Assembly.GetExecutingAssembly(); foreach (var temp in bermartaPallnirhi.GetTypes...,请阅读原文: https://lindexi.gitee.io/post/C-%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%90-%E5%8F%8D%E5%B0%84-VS

63440

vsvs2017离线安装

下载vs_professional.exe 现在官网下载页只能直接下载到vs_professional.exe的2019版本,想要下载旧版(如2017版)的需要订阅才可以安装,其网址在vs旧版本安装。...离线安装 下载完vs_professional.exe之后,不能直接打开并安装(可以打开一下再关闭)。在该可执行文件所在目录下打开命令行,输入如下命令。...$ vs_professional.exe --layout f:\vs2017pro_offline --lang en-US zh-CN 其中--layout表示离线包安装位置,--lang表示语言包...所以我们需要将该文件夹与上面离线下载的安装包vs2017pro_offline文件夹链接起来,即将Packages文件夹作为vs2017pro_offline文件夹的一个快捷方式,这样既可以通过离线安装包安装...$ mklink /D C:\ProgramData\Microsoft\VisualStudio\Packages f:\vs2017offline 至此,vs2017就可以打开安装程序进行离线安装了

1.5K30
领券