如何获取丢失程序集中包含的类型名称



我已经在ReflectionOnly上下文中加载了汇编A,以便获得关于类型及其方法的信息。至少有一个方法的返回类型是依赖程序集B的一部分。

问题是程序集B不可用,无法解决,因此抛出以下FileNotFoundException:

无法加载文件或程序集'B'或其依赖项之一。系统找不到指定的文件

那个异常是预料之中的。然而,我已经看到Reflector可以加载类型名称(这是我需要的),即使它不能解析依赖程序集。

有人知道如何在没有得到FileNotFoundException的情况下获得缺失程序集中包含的类型名称吗?

编辑:

试图访问ReturnType属性时抛出异常:

Type returnType = methodInfo.ReturnType;

您可以尝试使用其他库来加载此程序集,如Mono.Cecil

Ok…有一个"奇怪的"可能的解决方案,我说,它"奇怪"。

每当你试图加载一个在AppDomain中找不到的类时,触发typerresolve事件。

见MSDN页面

现在…为了简单起见,我们暂时把多线程和多个应用程序域问题分开,但是如果你在appdomain . current . typerresolve中添加一个处理程序,你就可以找到缺失的类名。

相关内容

  • 没有找到相关文章

最新更新