c# – Assembly.GetType()和typeof()返回不同的类型?
发布时间:2020-12-15 23:53:15 所属栏目:百科 来源:网络整理
导读:假设您获得了一个由以下简单代码编译的Class.dll程序集: namespace ClassLibrary{ public class Class { }} 并考虑使用上述Class.dll作为项目引用的不同项目,并使用以下代码: Assembly assembly = Assembly.LoadFrom(@"Class.dll");Type reflectedType = a
假设您获得了一个由以下简单代码编译的Class.dll程序集:
namespace ClassLibrary { public class Class { } } 并考虑使用上述Class.dll作为项目引用的不同项目,并使用以下代码: Assembly assembly = Assembly.LoadFrom(@"Class.dll"); Type reflectedType = assembly.GetType("ClassLibrary.Class"); Type knownType = typeof(ClassLibrary.Class); Debug.Assert(reflectedType == knownType); 断言失败了,我不明白为什么. 如果我用System.Text.RegularExpressions.Regex类和带有System.dll的Class.dll替换ClassLibrary.Class,断言会成功,所以我猜它与项目属性有关吗?一些编译开关也许? 提前致谢 解决方法
问题是加载上下文:通过.LoadFrom加载的程序集保存在与Fusion(.Load)加载的程序集不同的“堆”中.这些类型实际上与CLR不同.检查
this link以获取CLR架构师的更多详细信息.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |