【问题标题】:How to make an external assembly available at runtime?如何在运行时使外部程序集可用?
【发布时间】:2011-01-05 03:53:32
【问题描述】:

我问了一个问题here,显然问题是我可以在哪里使用反射的Assembly.LoadFileAssembly.LoadFrom 加载程序集,并在该程序集中获取类型,但在整个应用程序中仍然无法访问该程序集。因此,当 WPF 尝试解析类型时,它找不到该类型,因为它没有找到程序集。

我的问题是,我可以在运行时引用程序集,以便 WPF 可以解析它吗?

【问题讨论】:

标签: .net reflection assemblies


【解决方案1】:

一个适合我的解决方案是处理CurrentDomain.AssemblyResolve event

AppDomain.CurrentDomain.AssemblyResolve += 
    new ResolveEventHandler(OnAssemblyResolveFailure);

Assembly OnAssemblyResolveFailure(object sender, ResolveEventArgs args)
    {
        AssemblyName name = new AssemblyName(args.Name);
        Assembly assembly = .. //some logic here to load the assembly from assembly name
        return assembly;
    }

这样,如果应用程序无法解析程序集名称,它将调用您的处理程序来查找它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    相关资源
    最近更新 更多