我想知道如果在web应用程序中加载相同的程序集字节会发生什么情况。
例如,我有以下代码:
byte[] assem = System.IO.File.ReadAllBytes(appRoot + "/Plugins/Plugin.dll");
var loadedAssem = Assembly.Load(assem);
var plugin = loadedAssem.CreateInstance("Plugin.ThePlugin") as IPlugin;
我运行了这段代码,在第一次请求时,我认为它会将程序集加载到内存中(或者是HTTP运行时应用程序域?),然后我可以创建其中的任何实例。
如果我再次运行此代码,比如在第二个请求中,第一个请求中的程序集会发生什么?
它仍然存在于内存中吗?如果是这样,它如何区分两个程序集?还是它覆盖先前声明的类?
这是为了我理解,就像我在PHP中所做的那样,这不仅仅是“require_once”的情况。