如果我只有类名和 dll 名,如何获取完全限定的程序集引用
本文关键字:获取 程序集 引用 何获取 dll 如果 | 更新日期: 2023-09-27 18:33:35
我有一个在紧凑框架 3.5 中运行的应用程序,并且必须通过网络将信息发送到运行 4.0 框架的服务。 具体来说,我正在传递有关异常的信息。 我需要能够使用类名和程序集名创建指定异常的新实例。
我正在使用Activator.CreateInstance((来创建对象,并且我计划使用Type.GetType((来获取对4.0框架中相应类型的引用。 但是,我无法弄清楚如何仅从类名和程序集名称中获取类型引用(或完全限定的程序集名称以获取类型引用((因为我不知道 4.0 程序集中的 PublicKeyToken(。
我意识到我可以作弊并将一些信息存储在我的服务中以进行翻译,但我正在寻找一种完全动态的数据查找,不涉及硬编码任何标记或版本字符串。
我正在使用ProtoBuf-Net通过网络序列化/反序列化我的数据。 我只是序列化 Type 值本身,但我发现这适用于某些异常类型,而不适用于其他类型,因此我求助于传递类和程序集的字符串名称,因为我知道字符串将兼容两种不同的框架类型/版本之间的序列化。 具体来说,我在传递类型值时遇到的第一个异常是System.Net.WebException。
您只需
编写System.Web
,Fusion(CLR 的程序集加载器(就会为您找到匹配的程序集。
不需要版本或公钥令牌。
例如:
Type.GetType("System.Web.HttpException, System.Web")