如何在运行时使外部程序集可用?

时间:2011-01-05 03:53:33

标签: .net reflection assemblies

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

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

1 个答案:

答案 0 :(得分:0)

适用于我的解决方案是处理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;
    }

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