part7의 ClientSession의 Send함수를 수정하는 과정에서
MsgId를 추출을 하는데 enum에 해당하는 것을 추출하기 위한 방법으로
reflection을 사용을 한다.
즉, 뭔가를 "반영", "반사"를 한다.
C#에서는 프로그램 실행 도중에 객체의 정보를 조사하거나, 다른 모듈에 선언된 인스턴스를 생성하거나, 기존 개체에서 형식을 가져오고 해당하는 메소드를 호출, 또는 해당 필드와 속성에 접근할 수 있는 기능을 제공하는 '리플렉션(Reflection)'이라는 녀석이 존재
즉,
조사
인스턴스 생성
기존 개체에서 형식 가져오고 -> 호출, 접근
기능을 제공하는 게 "리플렉션"
http://msdn.microsoft.com/ko-kr/library/system.type_members(v=vs.90).aspx
뭐 안에 함수, 함수의 타입등등이 뭐가 있는지 뽑아?반영? 할 수 있는 것인데
Enum.Parse도 이러한 reflection의 기능중 하나라고 보면된다.
https://mentum.tistory.com/333
이렇게 인자를 넣어주게되면은 MsgId라는 enum 에서 msgName과 같은 이름을 가진 녀석을 찾아서
object타입으로 반환을 해준다.
이것을 MsgId로 캐스팅해준후
MsgId msgId로 받아주도록 하자.
참고로 MsgId라는 enum은 이렇게 되어있는데
msgId에는 그러면 우리가 정의해놓은 CChat, SChat, SEnterGame 셋중 하나가 일단 문자열로 저장 되어있는 상태임.
ㅇㅋ?