程序集加载发生两次

时间:2019-05-15 10:10:55

标签: c# autofac .net-assembly appdomain

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

1 个答案:

答案 0 :(得分:1)

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

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