为什么MSDN说通过路径加载程序集"很少"?

Joe*_*ite 6 .net msdn assemblies

根据System.Assembly文档:

所述的LoadFileLoadFrom提供了用于在其中装配必须由路径来识别罕见的场景的方法.

他们建议您更常用其显示名称加载程序集(例如,"System.Windows.Forms,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089").

这对我没有任何意义.如果要通过其版本和公钥引用程序集,则应在编译时添加引用; 您不会在运行时使用Assembly类加载它.在运行时加载程序集的典型方案是,当您加载一个插件时,这将由路径完成 - 因为您要么扫描目录以获取插件,要么读取某种清单,说明哪里他们找到了.

为什么文档会说,在动态加载程序集的场景中,按路径加载它是"罕见的"?据我所知,它是通过显示名称加载它是罕见的.

Han*_*ant 2

嗯,应该很少见,因为太麻烦了。但是,插件往往是通过 LoadFrom() 加载的。永远不要使用 LoadFile(),那会带来真正的麻烦。

问题在于您无法真正预测插件所依赖的程序集会发生什么。妥善解决这些问题是一件冒险的事。您应该青睐的解决方案是 .config 文件,以便您可以使用 Load() 并且探测路径是可预测的。