我有一个在紧凑框架3.5中运行的应用程序,它必须通过线路将信息发送到运行4.0框架的服务。具体来说,我正在传递有关例外情况我需要能够使用类名和程序集名称创建指定异常的新实例。
我正在使用Activator.CreateInstance()来创建对象,我计划使用Type.GetType()来获取对4.0框架中相应类型的引用。但是,我不知道如何从类名和程序集名称中获取Type引用(或完全限定的程序集名称来获取类型引用)(因为我不知道4.0程序集中的PublicKeyToken)。
我意识到我可以欺骗并将一些信息存储在我的翻译服务中,但我正在寻找一种完全动态的数据查找,不需要对任何令牌或版本字符串进行硬编码。
我正在使用ProtoBuf-Net通过网络序列化/反序列化我的数据。我只是序列化Type值本身,但我发现这适用于某些Exception类型而不适用于其他类型,所以我已经使用了Class和Assembly的字符串名称,因为我知道字符串将兼容两个不同的序列化框架类型/版本。特别是我遇到的第一个Exception,当传递Type值时,它就是System.Net.WebException。
答案 0 :(得分:2)
你可以写System.Web
而Fusion(CLR的装配加载器)会为你找到一个匹配的装配。
您不需要版本或公钥令牌。
例如:
Type.GetType("System.Web.HttpException, System.Web")