C# 程序集加载发生两次

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

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

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


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


LoadFile()在99.9%的情况下是错误的,请改用LoadFrom()。如果要多次加载程序集,则只能使用LoadFile(),这是非常罕见的。LoadFile()在99.9%的情况下是错误的,请改用LoadFrom()。如果要多次加载程序集,则只能使用LoadFile(),这是非常罕见的。谢谢。顺便问一下,他们在文档中说LoadFile会导致多次加载程序集,而LoadFrom()和Load()不会。在备注部分备注使用LoadFile方法加载和检查具有相同标识但位于不同路径的程序集。LoadFile不会像LoadFrom方法那样将文件加载到LoadFrom上下文中,也不会使用加载路径解析依赖项。LoadFile在这种有限的场景中很有用,因为LoadFrom不能用于加载具有相同标识但不同路径的程序集;它将只加载第一个这样的程序集。谢谢。顺便问一下,他们在文档中说LoadFile会导致多次加载程序集,而LoadFrom()和Load()不会。在备注部分备注使用LoadFile方法加载和检查具有相同标识但位于不同路径的程序集。LoadFile不会像LoadFrom方法那样将文件加载到LoadFrom上下文中,也不会使用加载路径解析依赖项。LoadFile在这种有限的场景中很有用,因为LoadFrom不能用于加载具有相同标识但不同路径的程序集;它将只加载第一个这样的程序集。