如何获取 .NET 中的类列表

2024-02-22

I tried Assembly.ReflectionOnlyLoadFrom(@"path\System.Core.dll")和 ReflectionOnlyLoad 但我遇到了异常和错误。如何正确获取程序集中的所有命名空间/类?

例如我得到了这个例外。

Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.

要加载程序集然后获取所有类型的列表:

Assembly assembly = Assembly.ReflectionOnlyLoadFrom("System.Core.dll");
Type[] types = assembly.GetTypes();

不幸的是,如果any暴露的类型无法加载,有时这种加载失败是无法避免的。然而,在这种情况下,抛出的异常包含已成功加载的所有类型的列表,因此我们可以这样做:

Assembly assembly = Assembly.ReflectionOnlyLoadFrom("System.Core.dll");

Type[] types;
try
{
    types = assembly.GetTypes();
}
catch (ReflectionTypeLoadException ex)
{
    types = ex.Types;
}

这将为您提供所有类型的列表,包括接口、结构、枚举等...(如果您只想要类,那么您可以过滤该列表)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取 .NET 中的类列表 的相关文章

  • Hololens 应用程序将不再构建 - 引用元数据文件丢失且找不到 c-Sharp.firstpass

    我已按照 Microsoft 在其多个项目下列出的确切步骤进行操作微软全息 学院 https developer microsoft com en us windows holographic academy教程 我完成了所有这些 并且从创
  • 为什么我需要显式编写“auto”关键字?

    我正在从 C 98 转向 C 11 并且已经熟悉了auto关键词 我想知道为什么我们需要明确声明auto编译器是否能够自动推导类型 我知道 C 是一种强类型语言 这是一条规则 但如果不显式声明变量就不可能实现相同的结果auto 放弃显式的a
  • JQuery、ASCX 和 webmethods 似乎不起作用

    我有一个级联下拉列表 其中 3 个 类型 类别和子类别 首先类型负载 然后选择类型 类别负载以及选择类别 子类别负载 我还有 2 个按钮 添加类别 和 添加子类别 单击这些按钮后 我调用 JQuery 模态表单来添加它们 我在代码后面使用
  • 如何使用反射来确定 F# 联合类型是否是类似枚举的联合(每种情况下都没有字段)

    术语 在下面的文章中 我将使用术语 引用枚举 来指代 F 类型 该类型是在每种情况下都没有字段的可区分联合 例如 type AReferenceEnum Yes No Maybe 要求 我需要一个给定的函数Type 返回一个bool告诉类型
  • 进入嵌入式[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何设置 web.config 文件以显示完整的错误消息

    我在 Windows Azure 上部署了 MVC 3 应用程序 但现在当我通过请求时staging url它告诉我 很抱歉 在执行您的要求时发生了一个错误 现在我想查看完整的错误消息 默认情况下由于某些安全原因它会隐藏该消息 我知道我们可
  • ScrollableControl 在整个控件周围绘制边框

    我正在构建基于的自定义用户控件ScrollableControl 现在我正在尝试在控件周围添加边框 类似于 DataGridView 的边框 我可以使用以下方法绘制边框 e Graphics TranslateTransform AutoS
  • 忽略父进程中的信号

    我正在尝试实现一个 shell 程序 我希望 shell 程序忽略 SIG INT ctrl c 但在我的程序中 子进程也会忽略 SIG INT 信号 但它不应该这样做 因为 exec 应该将子进程带到另一个程序 并且该程序默认情况下应该处
  • C# SMO 远程数据库备份到本地机器

    我有一个执行 SQL 数据库备份和恢复的应用程序 这在本地计算机上运行良好 但是如果我针对另一台计算机上托管的 SQL 服务器运行此应用程序 则会出现以下错误 Microsoft SqlServer Management Smo Faile
  • 有什么办法可以让这个 C# 代码更快吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在读取一个大文件 X12 并解析其中的信息 我有两个瓶颈功能 我似乎无法解决 read line 和 get element 有什
  • 如何使用平台调用编组 void*

    我需要从 dll 中包含的 C api 调用函数 函数原型如下 int func char name void value 其中指针值的内容可以引用依赖于传递的名称的任何类型 我不确定如何设置 Dll 输入端口以正确编组此 void 我一直
  • 如果我每次创建粒子时都强制重新初始化每个粒子,我是否应该使用粒子池

    我正在 XNA4 中创建一个粒子系统 但遇到了问题 我的第一个粒子系统是一个简单的粒子列表 其实例是在需要时创建的 但后来我读到了有关使用池的内容 我的第二个系统由一个充满粒子的池和一个发射器 控制器组成 我的池非常基本 这是代码 clas
  • 使用 C# 启动 Outlook

    我可以让 C 在代码中启动 Outlook 吗 在 VB6 中 我们使用对象 Outlook Application 并编写 Set oOutlook CreateObject Outlook Application Set oNameSp
  • 安全移动 C++ 对象

    我听到过一些警告 不要通过以下方式将对象运送到另一个内存位置memcpy 但不知道具体原因 除非它包含的成员做了依赖于内存位置的棘手事情 否则这应该是完全安全的 或者不是 编辑 预期的用例是像这样的数据结构vector 它存储对象 不是po
  • 如何检查我的程序是否有数据通过管道传输到其中

    我正在编写一个应该通过标准输入读取输入的程序 所以我有以下结构 FILE fp stdin 但是 如果用户没有将任何内容通过管道传输到程序中 这就会挂起 我如何检查用户是否确实将数据通过管道传输到我的程序中 例如 gunzip c file
  • 如何通过反射获取透明代理的属性值?

    我的代码接收透明代理而不是原始实例 虽然这var type obj GetType 产生原始类的类型 下面的代码抛出TargetException 对象与目标类型不匹配 var value property GetValue obj nul
  • 通过 C++ 标头在 C++ 和 C# 中使用枚举

    我有一个用 C 编写的服务器 位于命名管道的末端 嗯 提供服务 可以发送到服务器的命令在位于头文件中的枚举中定义 enum e doThing1 e doThing2 e doLastThing 所需枚举的值被放入发送到服务器的消息的第一个
  • 我的 C 程序无法运行,并显示“无法执行二进制文件:Exec 格式错误”

    我刚刚从 C 开始 我试图编译下面的代码并执行它 但出现错误 也在运行sizeBS 或数据堆栈中没有显示任何内容 include
  • 删除指针后将其设为 NULL 是一个好习惯吗?

    我首先要说的是 使用智能指针 您将永远不必担心这个问题 下面的代码有什么问题 Foo p new Foo use p delete p p NULL 这是由答案和评论 https stackoverflow com questions 19
  • System.IO.IOException:进程无法访问文件“.txt”,因为它正在被另一个进程使用

    我正在使用下一个代码来记录 Web 应用程序的错误 using StreamWriter myStream new StreamWriter sLogFilePath true myStream WriteLine string Forma

随机推荐