程序集加载发生两次

Assembly loading happens twice

我需要在 autofac 中注册一些类型,例如 MyHandler: IRequest。这些类型驻留在到目前为止未被引用的程序集 'A' 中,因此未加载到 appdomain 中。我尝试使用 Assembly.LoadFile(path) 加载程序集 'A',它被加载到应用程序域中,但后来这个相同的 dll 被 .net 运行时再次加载到应用程序域中,并且有两个 [=12 的实例=] 在应用程序域中,这在我的场景中是一个问题。 使用 Autofac 注册也无济于事。我只想知道如何防止运行时加载 'A',因为我已经加载了它。

通过 LoadFile 方法,您可以从不同的 PATHS 多次加载程序集。而不是 LoadFile() 尝试 LoadFrom() 或简单地 Load() 最后的方法确保您的程序集只加载一次。

https://docs.microsoft.com/en-us/dotnet/api/system.reflection.assembly.loadfrom?view=netframework-4.8