사용자가 어셈블리를 열고 내부에서 정적 메서드를 선택할 수있는 간단한 클래스 브라우저 대화 상자에서 작업하고 있습니다. 그러나 어셈블리의 종속성이없는 경우가 있습니다.ReflectionOnlyLoad 동안 누락 된 종속성 무시합니다.
메서드 이름 만 필요하므로 전체 프로토 타입이 필요하지 않으므로 Assembly.ReflectionOnlyLoadFrom을 호출 할 때 발생하는 FileNotFoundException을 지나치는 방법이 있습니까? 나는 현재 AppDomain.ReflectionOnlyAssemblyResolve를 처리하고 있지만이 null을 반환하는 경우 다음 나는 다음과 같은 메시지가있는 FileLoadException 수 :
어셈블리에 대한 종속성을 확인할 수 없습니다 '...'가 사전로드되지 않았기 때문입니다. ReflectionOnly API를 사용할 때 종속 어셈블리는 ReflectionOnlyAssemblyResolve 이벤트를 통해 필요할 때 미리로드되거나로드되어야합니다.
.NET Reflector은 해결되지 않은 종속성을 건너 뛸 수 있기 때문에 어떻게 든 가능해야합니다. 그러나 아마도 Reflector가 어셈블리를 CLR에로드하고 표준 리플렉션을 사용하는 대신 수동으로 파싱한다고 생각하기 시작했습니다. 아마도 Mono 프로젝트의 Cecil과 같은 것을 사용했을 것입니다.
내가 리플렉터는 세실를 사용 의심 - 그것을 선행 및 MS 내에서왔다. 나는 또한 그것이 CCI를 사용하는지 의심한다. Methinks Lutz는 그 모든 것들을 잠그고 다니는 하나님입니다. (심지어 그는 결국 피곤해졌습니다!) –