0
모두 나는 이미 다음과 같은 시나리오 작업이 있습니다동적/실행시 로딩 여기서 C과 기준 B
- 조립
A.exe
: 윈폼 응용 프로그램을 호출합니다. - 어셈블리
B.dll
: 클래스 라이브러리는A
으로 하드 참조됩니다. - 어셈블리
C.dll
: 런타임에 컴파일되고B
(클래스는B
클래스에서 상속됩니다) 참조.
A.exe
는, 실행시 C.dll
일부 코드를 컴파일 어셈블리를로드하고 난 DLL로 디스크에 C
를 컴파일 할 경우,이 같은 폴더에 B.dll
집어 ((B.BaseClass) C.DerivedClass).BaseMethod();
를 호출합니다. 그러나 디스크에 C.dll
을 쓰고 싶지 않습니다.
이것을 달성하는 가장 좋은 방법은 무엇입니까?
감사합니다. 나는 당신이 말하는 것을 얻지 만, 나는 그 방법이 무엇을하는지 확신하지 못한다. 이 이벤트가 발생하면 내 코드가 런타임에 현재 appdomain에 이미로드 된 어셈블리에 액세스하는 방법을 알려주지 않아야합니까? 나는 반성에 처음이므로 당신의 솔루션을 더 잘 이해하려고 노력하고 있습니다. –
그건 그렇고, 나는 언제나'C'가 호출되기 전에로드 된 것을 확인하기 위해 어셈블리'B'에서 객체를 인스턴스화합니다. 관련성이 있는지 확실하지 않습니다. –
이것은 이미로드 된 경우 B를 제공하는 좋은 방법입니다. 그렇지 않다면, 당신은 Assembly.LoadFile (string Path)'핸들러에서 할 수 있습니다. 그것은 그것의 목적입니다. – Seb