런타임에 해상도 유형에 추가 로직을 추가 할 수있는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/122544

  •  02-07-2019
  •  | 
  •  

문제

자신의 CLR 호스트를 만들고 관리하지 않고 해당 유형을 찾을 수없는 경우 유형을 찾아서로드하는 일반적인 방법이 있습니까?

다음은 예입니다. 첫 번째 답변이되기 위해 서두르면 새로운 애드 인 프레임 워크 나 MEF를 내 질문에 대한 해결책으로 제안하지 마십시오.

예를 들어 추가 인이있는 샘플이 있습니다. 앱은 특정 기능에 사용할 유형을 나열한 파일을 읽습니다. 앱은 이러한 유형을 인스턴스화하려고 시도합니다. 현재 AppDomain에 이미로드되지 않은 경우 방법이 실패합니다. 처리 할 수있는 이벤트 나 구성 요소를 찾고 있습니다.이 구현을 제공하여 이러한 상황을 우아하게 처리하고 이러한 어셈블리를로드하기위한 추가 논리를 제공 할 수 있습니다.


내가 말할 수있는 한 (누군가가 작동하는 예제가없는 한) 유형을 찾을 수 없을 때 소위 언급 된 AppDomain 이벤트 중 어느 것도 발사하지 않습니다.


잠깐만 요 이것은 작동합니다! 내가 전에 무엇을 잘못했는지 잘 모르겠지만이 이벤트는 잘 해고됩니다.

도움이 되었습니까?

해결책

이벤트가 있습니다 AppDomain 사용할 수 있습니다.

당신은 원할 것입니다 typeresolve 이벤트 및 아마도 Assemblyresolve 이벤트.

또한, 당신은 방법에 대한 자세한 내용을 읽을 수 있습니다 .NET 런타임은 어셈블리를 해결합니다,이 정보를 프로브 섹션에서 정의 할 수 있습니다.

다른 팁

AppDomain 이벤트를 사용하는 것만으로는 불가능합니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top