【发布时间】:2013-05-29 18:05:06
【问题描述】:
我使用 Assembly.Load(byte[]) 来动态加载一些 dll,用户可以在需要时添加这些 dll。 如果我多次调用 Assembly.Load(byte[]) 会发生什么,因为那个 byte[] 从同一时间加载?我问这个是因为在我的程序中,每次需要时都会调用加载 dll,而不是在某处保存对它的引用。它会多次加载同一个dll吗?它会只加载一次并更新已经加载的吗?检查 Visual Studio 调试器只有一个 dll 副本,所以看起来不错,但又引发了另一个问题。 我试图修改 dll,并添加一个新的(带有较新版本的)现在有两个 dll 文件,旧的和新的,我调用 Assembly.Load(byte[]) 到它们(旧的和新的),一个一个,像这样:加载旧的dll,使用它,加载新的dll,使用它。它们工作正常,旧的和新的,但只有一个加载了,所以这让我觉得第二次加载会覆盖旧的,这是如何工作的?我有任何风险吗?如果多个用户加载它们会发生什么? (例如使用加载和使用两个 dll 的方法的 Web 应用程序)
【问题讨论】:
标签: c#-4.0 reflection dll .net-assembly