리플렉션 내보내기 동적 어셈블리 시나리오
업데이트: 2007년 11월
리플렉션 내보내기는 동적 어셈플리에 정의된 동적 모듈 만들기를 지원합니다. 동적 어셈블리에서 만든 동적 모듈이 임시 모듈이거나 지속 모듈이 될 수 있습니다.
형식 참조에 대한 제한 사항
어셈블리는 다른 어셈블리에 정의된 형식을 참조할 수 있습니다. 임시 동적 어셈블리는 다른 임시 동적 어셈블리, 지속 동적 어셈블리 또는 정적 어셈블리에 정의된 형식을 안전하게 참조할 수 있습니다. 그러나 공용 언어 런타임을 사용하면 지속 동적 모듈은 임시 동적 모듈에 정의된 형식을 참조할 수 없습니다. 지속 동적 모듈을 디스크에 저장한 후 로드한 경우, 런타임에서 임시 동적 모듈에 정의된 형식에 대한 참조를 확인할 수 없기 때문입니다.
원격 응용 프로그램 도메인으로 내보내기에 대한 제한 사항
일부 시나리오에서는 원격 응용 프로그램 도메인에 동적 어셈블리를 만들어 실행해야 합니다. 리플렉션 내보내기에서는 동적 어셈블리를 원격 응용 프로그램 도메인으로 바로 내보낼 수 없습니다. 이를 해결하려면, 현재 응용 프로그램 도메인에서 동적 어셈블리를 내보내고, 내보낸 동적 어셈블리를 디스크에 저장한 다음, 동적 어셈블리를 원격 응용 프로그램 도메인에 로드합니다.
동적 어셈블리 액세스 모드
다음 액세스 모드 중 하나를 사용하여 동적 어셈블리를 만들 수 있습니다.
Run
AssemblyBuilder에서 나타내는 동적 어셈블리는 임시 어셈블리입니다. 동적 어셈블리는 내보낸 코드를 실행하기 위해서만 사용할 수 있습니다.
저장
AssemblyBuilder에서 나타내는 동적 어셈블리는 지속 어셈블리이지만 저장된 PE 파일(이식 가능한 실행 파일)을 디스크에서 로드할 때까지 실행할 수 없습니다.
RunAndSave
AssemblyBuilder에서 나타내는 동적 어셈블리는 지속 어셈블리이지만 어셈블리를 디스크에 저장하기 전이나 저장한 후에 실행할 수 있습니다.
동적 어셈블리를 정의하고 나중에 변경할 수 없을 경우 액세스 모드를 지정해야 합니다. 런타임에서는 동적 어셈블리의 액세스 모드를 사용하여 어셈블리의 내부 표현을 최적화합니다.