当前位置:  开发笔记 > 编程语言 > 正文

为什么在尝试Assembly.ReflectionOnlyLoad时没有执行ReflectionOnlyAssemblyResolve?

如何解决《为什么在尝试Assembly.ReflectionOnlyLoad时没有执行ReflectionOnlyAssemblyResolve?》经验,为你挑选了1个好方法。

我正在尝试通过挂钩AppDomain.AssemblyResolveAppDomain.ReflectionOnlyAssemblyResolve事件来加载一些模块.虽然我让前者工作,但我对后者失败了.我把问题归结为这个小程序:

public static class AssemblyLoader
{
    static void Main(string[] args)
    {
        AppDomain.CurrentDomain.ReflectionOnlyAssemblyResolve += 
            ReflectionOnlyAssemblyResolve;

        // fails with FileNotFoundException
        Assembly.ReflectionOnlyLoad("Foo");
    }

    public static Assembly ReflectionOnlyAssemblyResolve(object sender, 
        ResolveEventArgs args)
    {
        Trace.TraceInformation(
            "Failed resolving Assembly {0} for reflection", args.Name);

        return null;
    }
}

运行此程序失败,FileNotFoundException尝试时Assembly.ReflectionOnlyLoad,但它不会调用ReflectionOnlyAssemblyResolve处理程序.我很难过.

有没有人知道这可能是什么原因以及如何让它发挥作用?

谢谢!



1> casperOne..:

看起来ReflectionOnlyAssemblyResolve事件仅用于解析依赖关系,而不是顶级程序集,如下所示:

http://codeidol.com/csharp/net-framework/Assemblies,-Loading,-and-Deployment/Assembly-Loading/

和这里:

http://blogs.msdn.com/junfeng/archive/2004/08/24/219691.aspx

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有