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

Assembly.GetTypes - 如果GetExportedTypes可用,为什么要使用它?

在云计算领域中,Assembly.GetTypes 和 Assembly.GetExportedTypes 都是用于获取程序集中的类型信息的方法。它们之间的主要区别在于它们返回的类型类别不同。

  • Assembly.GetTypes:这个方法返回程序集中定义的所有类型,包括公共和私有类型、嵌套类型和泛型类型定义等。这意味着,如果你使用这个方法,你可以获取到程序集中所有类型的信息,包括那些不打算对外公开的类型。
  • Assembly.GetExportedTypes:这个方法只返回程序集中公开的类型,即那些具有公共访问修饰符的类型。这意味着,如果你使用这个方法,你只能获取到程序集中那些打算对外公开的类型的信息。

因此,如果你需要获取程序集中公开的类型信息,那么使用 Assembly.GetExportedTypes 更加合适。这是因为,在大多数情况下,我们只关心那些打算对外公开的类型,而不是所有类型。

然而,在某些情况下,你可能需要获取程序集中所有类型的信息,包括那些不打算对外公开的类型。在这种情况下,你应该使用 Assembly.GetTypes 方法。

总之,如果你需要获取程序集中公开的类型信息,那么使用 Assembly.GetExportedTypes 更加合适。如果你需要获取程序集中所有类型的信息,包括那些不打算对外公开的类型,那么使用 Assembly.GetTypes 更加合适。

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

相关·内容

TypeScript是什么,为什么要使用它

尽管如果初始文件中存在类型错误,编译器会发出警告,但编译器仍然会给您返回一个正常的JavaScript文件。 在前端还是后端使用TypeScript?...如果我们声明一个变量,编译器应该知道(或可推断) 该变量是数字、字符串或布尔值。 在动态类型的语言中,这不一定是这样。只有在运行程序时才知道变量的类型。...但如果只想对数字求和,则可以对my_sum函数添加类型以使其仅接受数字类型的变量。...要在浏览器中运行TypeScript,需要使用TypeScript编译器(tsc)将其转换为JavaScript。...这是一门实用的3小时课程,涵盖TypeScript的所有基本功能,如何使用它与某些JavaScript框架进行交互以及在编写JavaScript时如何利用TypeScript的功能。

1.6K20
  • 为什么要使用它?

    如果你仍然遇到麻烦,看看你是否可以按照这个例子。 假设我们有一个由绿点和红点组成的数据集。 当用它们的坐标绘制时,这些点形成一个带有绿色轮廓的红色圆圈(看起来很像孟加拉国的旗帜)。...如果以某种方式我们丢失了1/3的数据会发生什么。 如果我们无法恢复它并且我们想找到一种方法来估计缺少的1/3看起来是什么样的。 那么我们如何找出丢失的1/3看起来像什么?...那么如果你看一下决策树和GLM模型的预测形状,你会注意到什么? 直线边界。 我们的输入模型不包括任何转换来解释x,y和颜色之间的非线性关系。...何时不使用它 那么为什么不将SVM用于一切呢? 不幸的是,SVM的神奇之处也是最大的缺点。 复杂的数据变换和产生的边界平面很难解释。 这就是为什么它通常被称为黑匣子。 相反,GLM和决策树恰恰相反。...很容易理解DT和GLM究竟是什么和为什么会以牺牲性能为代价的。 更多资源 想进一步了解SVM?

    1.9K30

    为什么要使用它

    为什么突然受到关注? 在本文中,我将给给出 ServiceMesh 的定义,通过分析在过去十年中应用架构的变迁来追踪分析它的变化。...如果实例关闭,无响应或无法处理请求,则 Linkerd 会在另一个实例上重试该请求(但只有当知道请求是幂等时)。...如果实例一直返回错误,则 Linkerd 将其从负载平衡池中排除,以便稍后重新进行重试(例如,一个实例可能会发生暂时失败)。...为什么 ServiceMesh 是必要的 ServiceMesh 并不是一项新的功能,而是功能位置的转变。...虽然它们与具体周围环境的细节相关,并且需要使用特定的语言和框架,但它们是用于管理服务到服务通信的专用基础设施,并且(在开源 Finagle 和 Hysterix 库的情况下)可以在其公司之外使用。

    2.4K60

    如果Node.js已具备反向代理的功能,我为什么要使用反向代理?

    但是,在我们搞清楚为什么要使用反向代理之前,让我们首先看一下它是什么。 什么是反向代理?...如果服务是在暴露api.example.org,反向代理可以将请求转发给api1.internal.example.org,api2等 那里有许多不同的反向代理。...Nginx是两种选择中比较流行的,并且还具有一些其他有益的功能,例如从文件系统提供静态文件的能力,因此我们将在本文中使用它作为示例。...既然我们知道反向代理是什么,我们现在可以看看为什么我们想要使用Node.js。 我为什么要使用反向代理? SSL终止 SSL终止是使用反向代理的最常见原因之一。...但是,如果您的Node.js应用程序正在处理SSL,那么您的应用程序使用的每个第三方模块(甚至可能是恶意模块  )都可以访问您的私有SSL证书。

    1.5K40

    依赖注入:实现概述

    对于一个通过调用ServiceProviderEngine对象的CreateScope创建的ServiceProviderEngineScope来说,由于它同时也是一个IServiceProvider对象,如果我们调用它的...如果我们调用它的GetService方法,它返回创建它的ServiceProviderEngine对象,也就是该方法和Engine属性返回同一个对象。 ?...这一个特性决定了调用它们的CreateScope扩展方法都会创建一个新的ServiceProviderEngineScope对象作为子容器。...().Single(it => it.Name == "IServiceProviderEngine"); var engineScope = assembly.GetTypes().Single...property.GetValue(engine); } } 三、注入IServiceProvider对象 在《依赖注入模式》中,我们从“Service Locator”设计模式是反模式的角度说明了为什么不推荐在服务中注入

    57630

    一张图看懂微服务架构路线

    为什么要使用它? 哪些工具比较好?...我为什么要使用它: 这些哪些工具比较好为你的应用程序管理提供一些服务,例如自动负载均衡,保证服务的高可用性。...我为什么要使用它如果没有 API 网关,你可能需要在每个服务中做一些横切关注点,例如,如果你想记录服务的请求和响应。...负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。 我为什么要使用它: 为了扩展你的独立服务,你需要运行多个服务实例。...我为什么要使用它如果你想要一个包含多个服务的可扩展应用程序,你将遵循的原则之一是创建松散耦合的服务,这些服务通过事件总线相互交互。

    85810

    一张图看懂微服务架构路线

    为什么要使用它? 哪些工具比较好?...我为什么要使用它: 这些哪些工具比较好为你的应用程序管理提供一些服务,例如自动负载均衡,保证服务的高可用性。...我为什么要使用它如果没有 API 网关,你可能需要在每个服务中做一些横切关注点,例如,如果你想记录服务的请求和响应。...负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。 我为什么要使用它: 为了扩展你的独立服务,你需要运行多个服务实例。...我为什么要使用它如果你想要一个包含多个服务的可扩展应用程序,你将遵循的原则之一是创建松散耦合的服务,这些服务通过事件总线相互交互。

    1.5K11

    搞懂微服务

    为什么要使用它: 这些哪些工具比较好为你的应用程序管理提供一些服务,例如自动负载均衡,保证服务的高可用性。...我为什么要使用它如果没有 API 网关,你可能需要在每个服务中做一些横切关注点,例如,如果你想记录服务的请求和响应。...负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。 我为什么要使用它: 为了扩展你的独立服务,你需要运行多个服务实例。...我为什么要使用它如果你想要一个包含多个服务的可扩展应用程序,你将遵循的原则之一是创建松散耦合的服务,这些服务通过事件总线相互交互。...我为什么要使用它: 系统调试时,如果没有提前集中在一个地方收集服务日志,你可能会遇到困难。你还可以将与特定请求相关的日志与唯一的相关 ID 关联。

    53820

    使用 .NET Core 3.0 的 AssemblyLoadContext 实现插件热加载

    所以一直都没有好的方法实现插件热加载,好消息是,.NET Core 从 3.0 开始支持了可回收程序集 (Collectible Assembly),我们可以创建一个可回收的 AssemblyLoadContext,用它来加载与卸载程序集...isCollectible: true); var assembly = CompilePlugin(); var pluginType = assembly.GetTypes...IDisposable { string GetMessage(); } 这是插件项目需要的实现接口,宿主项目在编译插件后会寻找程序集中实现 IPlugin 的类型,创建这个类型的实例并且使用它...你可能会有疑问,为什么不在文件改变后立刻触发重新加载插件,一个原因是部分文件编辑器的保存文件实现可能会导致改变的事件连续触发几次,延迟触发可以避免编译多次,另一个原因是编译过程中出现的异常可以传递到访问插件实例的线程中...pluginName}", isCollectible: true); var assembly = CompilePlugin(); var pluginType = assembly.GetTypes

    4.8K30

    第八十一期:数据结构(Map 和Set)

    为什么需这两种数据结构 在我们真正在项目中使用这两种数据结构之前,了解他们的起源以及为什么我们需要在js中使用它们似乎也很重要。 在es5中,传统的数组并不支持开发人员常用的几个功能。...map[b] = 10 map[c] = 20 // 打印map // [object Object]: 20 了解 Map 和 Set 在实际使用Map 和 Set之前,我们需要了解何时何地需要使用它们...为了理解其中的一些内容,我们将探索SET和map类型,以及为什么需要它们,以及在哪里使用它们。...密钥被弱引用;这意味着,如果不使用,它们不会被阻止被垃圾收集。 Set:允许用户存储任何类型的唯一值的数据类型。 WeakSet:与set类似,但保持弱引用。 WeakMap 有多弱?...如果在任何时候都需要知道集合的键,或者需要迭代集合,则需要使用Map,因为WeakMap的键是不可枚举的,也就是说,不能在弱映射中获得可用键的列表,因为它只维护一个弱引用。

    25520

    CTO说了,谁在用select * 就走人!!

    今天这篇文章讨论下为什么。 1 为什么不? 为什么呢?...很多 SQL Server 和其他 RDBMS(关系数据库管理系统)的人建议永远不要使用,当我在演示中使用它并告诉我的与会者不要使用SELECT * 时,它已成为我演讲中的一个噱头。...如果大量查询使用SELECT *,这可能会导致系统表上的明显锁定。 3 列顺序 SELECT *按创建顺序返回列。...如果从过去的输出中假设特定顺序,这可能会导致意外,但是在应用程序升级和修改期间以不同的顺序创建了列,这可能是相当常见的。...另一个(常见)异常是在开发和测试环境中,或者如果我们需要解决生产中的问题。有时使用SELECT *. 这些决定应基于我们可获得的最佳可用信息,并且仅在适当的情况下。

    24540
    领券