当给定部分限定类型名称时,Type.GetType 如何工作?

2024-06-25

在很多地方我都遇到过以下形式的部分限定类型名称FullTypeName, AssemblyName,即像Type.AssemblyQualifiedName仅没有版本、区域性和 publicKeyToken 限定符。

我的问题是如何将其转换为相应的Type以最小的努力?我以为Type.GetType可以完成这项工作,但遗憾的是,它没有。例如,以下代码返回null:

Type.GetType("System.Net.Sockets.SocketException, System");

当然,如果我指定完全限定名称,它确实有效:

Type.GetType("System.Net.Sockets.SocketException, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");

多谢。


如果程序集已加载到当前域中,则下面的代码通常可以工作:

public static Type GetTypeEx(string fullTypeName)
{
    return Type.GetType(fullTypeName) ??
           AppDomain.CurrentDomain.GetAssemblies()
                    .Select(a => a.GetType(fullTypeName))
                    .FirstOrDefault(t => t != null);
}

你可以像这样使用它:

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

当给定部分限定类型名称时,Type.GetType 如何工作? 的相关文章

  • 从子类调用父方法c#

    这是一个与我之前看到的答案略有不同的问题 或者我没有得到它 我有一个父类 其方法名为MyMethod 和一个变量public Int32 CurrentRow public void MyMethod this UpdateProgress
  • 将 WindowState 设置为最大化会导致窗口过早出现

    我读到Load事件应该在创建窗口句柄后触发 但是before窗口实际上变得可见 在大多数情况下 这似乎是正确的 但是 我发现当我使用以下命令创建表单时WindowState属性设置为FormWindowState Maximized 通过
  • 有没有办法找到 .NET 中嵌入资源的最后修改日期?

    有人知道这样做的方法 在运行时 吗 我不确定我能在描述中详细阐述比标题中已经给出的更多信息 但如果您觉得我错过了某些内容 请说出来 resx 文件本身应该有一个与之关联的修改日期 但您将无法获取该文件中各个资源的修改日期
  • 关闭时发送到托盘

    单击关闭按钮时如何将最小化的窗口发送到托盘 另外 如何在应用程序启动时在托盘中显示图标 WinForm 一种方法是在窗口的 F ormClosing 事件中设置 FormClosingEventArgs 的 Cancel 属性 然后最小化到
  • N 个指向函数的指针数组,返回函数指针

    这是面试时问我的 我真的很困惑 如何声明一个 N 数组 指向函数返回的指针 指向函数返回的指针 指向字符的指针 有人可以帮忙吗 Typedef 是为懦夫准备的 这里有一个简单 机械的方法来计算复杂的声明 a a a N is an N el
  • CngKey.Create 不支持请求的操作

    我正在尝试在 C 程序集中 以编程方式 动态生成自签名证书 目标 NET 4 0 作为根CA来生成其他证书 该证书不需要保留在 Windows 证书存储中 我会将其导出为文件 通读这个问题 https stackoverflow com q
  • .NET 4.0 是否与 Windows XP SP2 或更低版本兼容? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我读过这里http www microsoft com downloads en details aspx FamilyID 5765
  • 关闭 Quartz .Net 中的调试日志记录

    我正在使用 Quartz NET 在我们的应用程序中安排一些自定义任务 一切工作正常 只是它在一秒钟内记录大约二十个调试条目 我不知道如何关闭调试日志记录 任何帮助将非常感激 因为我一直试图在网上查找但没有运气 调试条目如下所示 DEBUG
  • 使用具有 ThreadStatic 属性的并行扩展。会不会泄漏内存?

    我相当频繁地使用并行扩展 而且我刚刚遇到了一种情况 使用线程本地存储可能是明智的 允许工作线程重用对象 因此 我正在查看 ThreadStatic 属性 该属性将静态字段 变量标记为每个线程具有唯一值 在我看来 在没有任何 PE 线程重用保
  • 寻找系统、全面、完整的VB.NET和C#语法比较

    我是一名经验丰富的 VB NET 开发人员 想从 C 开始 我正在寻找两种语言语法之间基于网络的比较作为快速参考 我发现自己正在整理 VB NET 语法模板 例如 Public MustInherit Class BaseClass Pub
  • SQL LIKE 的 C# 版本

    有没有办法在 C 中搜索字符串中的模式 像 Sql LIKE 这样的东西会非常有用 正则表达式允许一切LIKE允许以及更多 但具有完全不同的语法 然而 由于规则LIKE是如此简单 其中 表示零个或多个字符 并且 表示一个字符 并且两者LIK
  • .NET DateTime 到 time_t(以秒为单位)

    有C代码 time1 double dt1 25569 0 86400 0 它以秒为单位从 TDateTime VCL 转换为 time t 格式 所以最后我需要得到time t NET DateTime 的格式 关于 time t 几乎普
  • 查询限制与返回类不同的类

    对于我当前的项目 我正在学习 NHibernate 但在翻译以下查询时遇到问题 select person Firstname person Lastname from Person inner join Contract on contr
  • 为什么 BLToolkit 没有更流行? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 获取表达式类型的宏

    Question 我正在尝试编写一个 C 宏 它需要type or type name作为输入 并给出type作为输出 例如 REMOVE NAME int 应该int REMOVE NAME int aNumber 也应该是int 我设法
  • 您如何使用 ReSharper 5 中的模式匹配功能?

    Resharper 5 的新模式匹配看起来非常强大 尽管需要一些修改才能弄清楚如何使用它 对于那些不熟悉此功能的人 它允许您在代码中搜索特定模式 此类模式的实例可以选择性地替换为替代方案 在 IntelliJ 中 这称为结构搜索和替换 它比
  • 更新到 ASP.NET Core 2.0 - 软件包与 netcoreapp2.0 不兼容

    我正在尝试更新到 NET Core 2 0 但在使用参考安装的所有软件包上都遇到这些错误 问题可能是 我正在参考netcoreapp1 0在输出中 Microsoft EntityFrameworkCore Tools DotNet 2 0
  • 有没有更快的方法来获取卷序列号?

    您好 我正在使用此代码来生成机器签名 但执行起来需要相当长的时间 想知道为什么这么慢 有什么更快的方法推荐吗 Public Shared Function DriveSN ByVal DriveLetter As String As Str
  • 如何从另一个线程阻止 UI 线程或强制表单在 UI 线程内运行

    我的应用程序的一个要求是 如果它失去数据库连接 那么它必须弹出一个大模式 无连接 稍后重试 对话框 阻止所有用户交互 直到重新获得连接为止 我通过在应用程序启动时启动 DeviceMonitor 类的实例来实现此目的 该类创建一个 Syst
  • 合并大文件的最佳方法是什么?

    我必须合并数千个大文件 每个大约 200MB 我想知道合并这些文件的最佳方法是什么 行将有条件地复制到合并文件中 可以使用 File AppendAllLines 或使用 Stream CopyTo 吗 使用 File AppendAllL

随机推荐

  • 使用 sed 更改 /etc/fstab

    我想改 etc fstab在脚本内 我想添加acl属性到根分区 One fstab行条目如下所示 UUID 730aee20 52b7 4920 75cd d0d995ef2445 ext3 errors remount ro 0 1 我想
  • Paypal IPN 并行支付问题

    我正在用这个http www binpress com app paypal adaptive payments pro codeigniter library 140 http www binpress com app paypal ad
  • 如何修改Open Shift中的节点启动命令?

    我使用 ES6 和 babel node 来创建我的应用程序 并且我要求我的应用程序以命令启动babel node app js 此命令列在我的 package json 中的 script start 中 因此命令 npm start 运
  • 在 R heatmap.2 中移动颜色键(gplots 包的功能)

    我现在阅读了 heatmap 2 帮助手册几次 并且在各种在线教程中我也没有读到有关将颜色键移动到不同位置的方法 现在 我想知道这是否可能 如果您使用 gplots 包中的 heatmap 2 函数 则默认情况下颜色键位于左上角 中每个元素
  • 使用两个不同颜色的数据集创建 matplotlib 热图

    我目前有两个大数据集 我想对它们进行比较 我把它们分开 一个是红色的 一个是蓝色的 但是我想并排显示红色和蓝色 我该怎么办 我当前的代码是 column labels list heatmap ylabels row labels list
  • 在 NHibernate 中标准化 EnumStringType

    我目前正在 NHibernate 中使用枚举 映射如下 public enum UploadMethod Java Silverlight Gears Flash class UploadMethodType EnumStringType
  • 如何在使用代理服务器访问 Internet 的 Windows 计算机上安装 Rails?

    我是 ruby 方式的忠实粉丝 然而今天它妨碍了我 安装rails的事实上的方法 我在WinXP机器上以域用户身份运行 是 下载并安装 ruby 一键安装程序 type gt gem install rails在命令提示符下 步骤 2 失败
  • Vue CLI 3 不会将供应商转换为 ES5

    我们有一个 vue cli 3 项目 它工作得很好并且编译没有问题 事实上 我们必须支持仅支持 ES5 代码的旧浏览器 在项目中我们集成了一些用ES6编写的外部库 reconnecting websocket是一个例子 Problem 使用
  • 如何包装 Python 迭代器以使其线程安全?

    因为有时它比围绕队列设计解决方案更实用 所以我想编写一个简单的包装器来使迭代器线程安全 到目前为止 我的灵感来自these https stackoverflow com questions 1131430 are generators t
  • 使用 gem 添加辅助方法

    我找到了很多有关添加表单辅助方法的信息 请参阅我的其他问题之一 但我找不到有关添加辅助方法的任何信息 就好像它们是在application helper rb 我尝试过复制application helper rb从 Rails 应用程序到
  • 如何获取正在执行的jade脚本的文件名

    是否存在可以从具有各种参数的玉模板中访问的全局对象 是否有一个全局变量包含当前正在执行的jade文件的路径 5 html head title Test body I want to be able to know what the cur
  • Friendly_id 和真实ID

    有什么办法可以得到真正的id使用Friendly id 修改的模型中的列 出于性能原因 我不想对其进行另一个数据库查询 广义上来说Friendly id修改to param and find方法 接下来应该可以工作 affiche Affi
  • OpenCV argc 和 argv 混淆

    我正在检查一些 OpenCV 教程 并在开头找到了这一行 这是链接 代码位于 CalcHist 部分下http opencv willowgarage com documentation c histograms html http ope
  • beautifulsoup find_all 错误?

    现在我正在使用 beautiful soup 来解析 html 页面 但有时我通过find all得到的结果小于页数 例如这个页面有 18 个标题跨度 但是当我使用以下代码时 它只有两个 谁能告诉我为什么 先感谢您 soup Beautif
  • 如何使用 vue-google-charts 创建组织结构图

    按照使用 vue google charts 插件的说明进行操作 https www npmjs com package vue google charts https www npmjs com package vue google ch
  • com.jcraft.jsch.JSchException:算法协商失败

    我正在尝试从客户端计算机连接 sftp 服务器 但是 com jcraft jsch JSchException 算法协商失败 我收到这种错误 com jcraft jsch JSchException Algorithm negotiat
  • jQuery.closest() 实现的 DOM / 纯 JavaScript 解决方案?

    这是我试图查询的标记 因此给出标记 table class non unique identifier table tr td div div td tr table 我正在查询 unique identifier var myDiv do
  • GCC 4.7/4.8 作为 Xcode 的 C/C++ 编译器

    我现在正在开发一个 C 项目 我希望使用 C 11 功能 在这个项目中 我正在使用该库NTL用于数论的东西 由于 Xcode 具有舒适自动完成功能 我使用 Xcode 编写代码 并且 NTL 库与标志 lntl 静态链接 现在 我希望使用一
  • Javascript 日期转 xs:dateTime

    有没有一种简单的方法将标准 Javascript 日期格式转换为 xs dateTime 所以我有一个日期值 new Date 我需要以下格式 2015 01 16T20 26 53 974 03 00 so 2015 年 1 月 16 日
  • 当给定部分限定类型名称时,Type.GetType 如何工作?

    在很多地方我都遇到过以下形式的部分限定类型名称FullTypeName AssemblyName 即像Type AssemblyQualifiedName仅没有版本 区域性和 publicKeyToken 限定符 我的问题是如何将其转换为相