Weird behaviour when mixing loading of assemblies using Assembly.LoadFrom and Assembly.Load

后端 未结 2 2077
广开言路
广开言路 2021-01-18 20:49

Weird behavior when mixing loading of assemblies using Assembly.LoadFrom and Assembly.Load

I have encountered a weird behavior when loading assemblies with Assembly.

2条回答
  •  耶瑟儿~
    2021-01-18 21:18

    @Kent Boogart: That appears to be the correct explanation. For a full explanation, Suzanne Cook has this blog post which elaborates a little more than the original one you posted: http://blogs.msdn.com/suzcook/archive/2003/05/29/57143.aspx

    Following is code leveraging AppDomain.AssemblyResolve -

     // register to listen to all assembly resolving attempts:
     AppDomain currentDomain = AppDomain.CurrentDomain;
     currentDomain.AssemblyResolve += new ResolveEventHandler(MyResolveEventHandler);
    
    
     // Check whether the desired assembly is already loaded
     private static Assembly MyResolveEventHandler(object sender, ResolveEventArgs args) {
        Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();
        foreach (Assembly assembly in assemblies) {
           AssemblyName assemblyName = assembly.GetName();
           string desiredAssmebly = args.Name;
           if (assemblyName.FullName == desiredAssmebly) {
               return assembly;
           }
        }
    
        // Failed to find the desired assembly
        return null;
     }
    

提交回复
热议问题