当前位置: 首页 > 编程语言 > C#

Type.GetType无法从已加载的程序集创建类型分享

时间:2023-04-10 17:15:57 C#

C#学习教程:Type.GetType无法从加载的程序集中创建类型一段时间后,我尝试使用Type.GetType从此程序集创建一个类型(使用AssemblyQualifiedName),但该方法返回null。如果我将它设置为引发异常,它会告诉我无法加载文件或程序集“...”或其依赖项之一。该系统找不到指定的文件。但我确定已经加载了完全相同的程序集(它显示在AppDomain.CurrentDomain.GetAssemblies()列表中)。任何人都知道可能出了什么问题和/或如何解决这个问题?为了理解为什么这不起作用,您需要了解“加载上下文”的问题。Type.GetType只查看“加载”上下文。您加载到内存中的程序集位于“LoadFrom”上下文中。真正绑定到加载上下文以查看从上下文加载的程序集的唯一方法是使用AssemblyResolve事件并编写代码以返回正确的程序集。AssemblyResolve事件在绑定失败之前触发,并且所有其他程序集查找失败。有关使用LoadFrom时加载上下文和问题的详细信息,请参阅下面的链接。MSDN–http://msdn.microsoft.com/en-us/library/dd153782.aspxAssemblyResolve–http://msdn.microsoft.com/en-us/library/system.appdomain.assemblyresolve.aspxSuzanneCook–http://blogs.msdn.com/b/suzcook/archive/2003/05/29/57143.aspx如果可以使用Assembly.LoadFrom获取程序集,则可以通过执行以下操作获取类型:Assemblyassembly=Assembly。LoadFrom("随便");typemyType=assembly.GetType("typeName")assembly.GetType还有其他重载,可以在这里找到如果对你有用,需要了解更多C#学习教程,希望大家多多关注它。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: