我已经在ReflectionOnly
上下文中加载了汇编A
,以便获得关于类型及其方法的信息。至少有一个方法的返回类型是依赖程序集B
的一部分。
问题是程序集B
不可用,无法解决,因此抛出以下FileNotFoundException
:
无法加载文件或程序集'B'或其依赖项之一。系统找不到指定的文件
那个异常是预料之中的。然而,我已经看到Reflector
可以加载类型名称(这是我需要的),即使它不能解析依赖程序集。
有人知道如何在没有得到FileNotFoundException
的情况下获得缺失程序集中包含的类型名称吗?
试图访问ReturnType
属性时抛出异常:
Type returnType = methodInfo.ReturnType;
您可以尝试使用其他库来加载此程序集,如Mono.Cecil
。
Ok…有一个"奇怪的"可能的解决方案,我说,它"奇怪"。
每当你试图加载一个在AppDomain中找不到的类时,触发typerresolve事件。
见MSDN页面
现在…为了简单起见,我们暂时把多线程和多个应用程序域问题分开,但是如果你在appdomain . current . typerresolve中添加一个处理程序,你就可以找到缺失的类名。