程序集加载发生两次

Ali*_*Ali 1 c# appdomain autofac .net-assembly

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

So_*_*_oP 5

通过LoadFile方法,您可以从不同的PATHS多次加载程序集。尝试使用 LoadFrom()或简单的Load() 代替 LoadFile() 最后一个方法可确保程序集仅加载一次。

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