AssemblyResolve 이벤트에 dll을로드하는 메서드를 사용하고 있습니다. 내가 원하는 방식대로 작동하지 않습니다. 내 양식 부하어셈블리가 내 DLL을 완전히로드하지 못하겠습니까?
:
var a = AppDomain.CurrentDomain;
a.AssemblyResolve += (object sender, ResolveEventArgs args) => LoadDLL(sender, args, anArg);
LoadDLL :
public Assembly LoadDLL(object sender, ResolveEventArgs agrs, bool anArg){
//Let's just ignore anArg, it doesn't affect anything related to the problem
asseblyPath = @"XXX";//path to my dll
return Assembly.LoadFrom(assemblyPath);
}
는 그래서 잘하고 좋은 몇 가지 코드가있다. AssemblyLesolve 이벤트가 호출되고 원하는 DLL 버전을로드 할 수 있도록 Copy Local을 false로 설정합니다.
이 코드를 실행 한 후 내 코드는 전역 상수 값 (이 클래스는 내 DLL에 있어야 함)이 포함 된 클래스에서 공용 변수에 액세스하려고 시도합니다.
public class GCV{
public GCV(){}
public string value1= "asdf";
}
불행히도 디버그 모드에있을 때 GCV.value1은 클래스 정의에 명확하게 값이 있으면 null로 설정됩니다. 이것은 여기에서 설명 할 수있는 증상 중 하나입니다. 문제를 진단하기에 충분할만큼 좋으십니까?
감사합니다.
GCV.value1은 유효한 표현식이 아니며 value1은 클래스의 정적 멤버가 아닙니다. –
"assembly"태그가 제거되었습니다. 어셈블리 언어 관련 질문에 사용됩니다. –
제 질문을 재 분류 해 주셔서 고마워요, 때로는 작은 태그 행복을 얻을 수 있습니다. – sooprise