웹 응용 프로그램 내에서 동일한 어셈블리 바이트를 두 번로드하면 어떻게되는지 궁금합니다.Assembly.Load (byte [])는 어떻게 작동합니까?
이 코드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"가 아닌 PHP를 사용합니다.
같은 어셈블리의 복사본 두 개를로드하고 위젯과 같은 클래스의 인스턴스를 만들면 서로 다르다는 것을 알았을 때 어떤 어셈블리가 클래스를 인스턴스화할까요? –
당신이 "CreateInstance"를 호출했을 때 ... –
그래 ... 나 정말 그걸 물어 보았 니? 늦었 어. 나는 자야 해. 좋아, 그래서 만약 내가이 2 사본을로드하고 난 그들 중 하나를 사용해야하고 다른 언로드 내가 그들을 별도의 appdomain에로드하고 해당 도메인을 언로 드해야할까요? –