지난번 메서드 Reflection에 이어서. 이번엔 필드!!!

사실.
reflection으로 메서드를 가져와서 실행시킬수 있다면
당연히 필드도. 비슷하게 핸들링 할수 있을꺼라 생각은 했지만.
(이상하게도!!) 방법을 못찾겠더라구요...

사실 계속
getMember로 가져와서 요고저고 해보니까 안되서 포기했었는데
써야할꺼 같은 일이 생겨서
(써야 한다기 보단.. 코딩양을 좀 줄이려고.... 성능은 신경도 안쓰고...)
다시 찾아보니..
FieldInfo라는게 있더라구요..


사용법은 method랑 거의 비슷합니다.

제가 하려고 했던건
동적으로 field를 가져와서 값을 할당하는거였는데

이렇게 하면 되네요..


FieldInfo fi = this.GetType().GetField("FABRIC_SEQ", BindingFlags.NonPublic | BindingFlags.Instance);
fi.SetValue(this, "할당해줄 값");

이 소스에서는
FABRIC_SEQ라는 필드가. private string으로 선언되어 있습니다. (멤버변수로)
그걸 가져와서
원하는 값으로 할당해 주는건데.

지금 하고 있는게 탭이 상당히 많은 페이지고
탭 마다 셋팅해야 할 값들이 다 달라서.
이렇게 해주니 코드가 많이 줄어드네요..
뭐.. 성능은.. 모르겠네요..

그래도 하나 더 알아냈으니 됐음!
by 피요히코~ 2010. 5. 10. 17:19
| 1 |