책 정리/Effective C#
item 43, reflection을 과도하게 사용하지 말라
최익필
2010. 8. 19. 00:32
이 포스트를 만든 목적
- 왜 그런지 알고 싶어서 공부하려고
이 포스트의 준비물
- gVim 7.3 (7.3을 쓰고 있긴 한데, 뭐가 더 좋아졌는지 모르겠다. :) )
참고 서적
- Effective C#
내용
왜 reflection을 과도하게 사용하면 안되는가?
- reflection으로 객체 생성할 때, 객체가 생성 디지 않을 수 있는 문제 때문에
맛보기 코드 - reflection 사용시 NULL 이 나올 수도 있다는 예제
- reflection으로 메서드 호출시, 현재 잘못 되고 있는지 알기가 힘들기 때문에
맛보기 코드 - reflection 으로 메서드 호출시, 메서드 호출이 안되는 경우 예제
- reflection으로 필드 접근시, 필드 이름을 잘못 기입해 접근을 못할 수 있기 때문에
맛보기 코드는 생략한다. 이 덕분에 null 접근하여, 예외가 발생 될 수 있다는 것만 알면 된다.
그러면 어떻게 대처 해야 하는가?
- attribute를 이용한다.
- 맛보기 코드 생략, 쉽게 생각해서, 책갈피를 꽂아둔다고 보면 된다.
- interface를 통해 접근한다.
- 맛보기 코드 생략, 쉽게 생각해서, 헤더파일의 공유라고 보면 된다.
결론
- 어셈블리 동적 바인딩이 가능하게 해주는 reflection를 조심해서 쓰자.
여담
- 책보는데 1시간 ...