보충예정
리플렉션은 컴파일 시에 알 수 없었던 타입이나 멤버들을 찾아내고 사용할 수 있게 해주는 메커니즘이다. 그러나 다음의 주요한 단점이 존재한다.
- 리플렉션을 사용하면 컴파일 시에 타입 안정성을 해친다.
- 리플렉션은 전반적으로 느리다. 어셈블리에서 정의하는 메타데이터를 살필 때 항상 문자열 검색이 수행되어야 한다.
- 리플렉션을 이용하여 멤버를 호출하면 성능에 좋지 않은 영향을 미친다. 따라서 먼저 매개변수들을 배열로 포장해야 한다. 내부적으로는 이렇게 포장된 내용을 다시 꺼내어 스레드의 스택에 옮긴다. 추가적으로 CLR이 메서드 호출 전에 각각의 매개변수들이 올바른 타입을 가지고 있는지 확인하고 호출자가 호출하려는 멤버에 접근할 보한 권한이 있는지 확인해야 한다.