如何避免使用Reflection已加载动态加载程序集?

Ach*_*les 13 .net c# reflection

我在循环中使用Assembly.LoadFile(assemblyFilePath)加载程序集,如果程序集已经加载一次,我想避免调用Assembly.LoadFile.我是否应该关注为已经加载的DLL重复调用Assembly.LoadFile?谢谢.

Har*_*san 19

不,您不需要担心,因为如果已经加载了一个程序集,它将不会再次加载

如果调用Assembly.LoadFile(),则可以多次加载同一个程序集,但前提是每次都从不同的路径加载程序集.您可以使用Assembly.Load(),它只会加载一次程序集.您还可以使用在当前应用程序域中找到已加载的程序集

Assembly[] asms = AppDomain.CurrentDomain.GetAssemblies();
Run Code Online (Sandbox Code Playgroud)

  • 并且看起来Assembly.LoadFile至少与通过AppDomain.CurrentDomain.GetAssemblies()手动枚举来确定程序集加载(可能更有效)一样有效. (4认同)