재우니의 블로그
객체 정보를 얻기위해 Reflection 을 사용해 보자
닷넷관련/CSharp 🍚
2009. 3. 10. 00:14
우리는 가끔 런타임시에 어떤 객체에 대해 필드,속성,이벤트를 알고자 할 때가 간혹 있을 것입니다.
이를 한번 가져오는 코딩을 해 볼까 합니다.
먼저 MyObject 클래스에 필드, 속성, 이벤트를 기재했습니다.
public
class
MyObject
{
//public 필드
public
string
myStringField;
public
int
myIntField;
public
MyObject myObjectField;
//public 속성
public
string
MyStringProperty
{
get; set;
}
public
int
MyIntProperty
{
get; set;
}
public
MyObject MyObjectProperty
{
get; set;
}
//public 이벤트
public
event
EventHandler MyEvent1;
public
event
EventHandler MyEvent2;
}
닷넷 클래스에서 우리가 Type 클래스로 접근을 할 수 있는데요. Type 객체를 얻기 위해서 typeof 키워드를 이용하여 쉽게 얻을 수 있답니다.
Type myObjectType =
typeof
(
MyObject
)
;
public 접근자를 가지고 있는 필드의 이름을 가지고 오기 위해서 Type.GetFields 메소드를 이용하면 되는데요.
참고 :
http://msdn.microsoft.com/en-us/library/ch9714z3.aspx
Type myObjectType =
typeof
(
MyObject
)
;
System
.
Reflection
.
FieldInfo
[
]
fieldInfo =
myObjectType.
GetFields
(
)
;
foreach
(
System
.
Reflection
.
FieldInfo
info
in
fieldInfo
)
Console.
WriteLine
(
info.
Name
)
;
출력하게 되면????
myStringField
myIntField
myObjectField
System.Reflection 의 FieldInfo 클래스를 이용해서 위와 같은 방법 뿐만아니라 많은 속성값을 가지고 원하는 값을 추출해 올 수 있습니다. 이에 대한 예제는 msdn 을 참고하시면 될듯 싶네요.
http://msdn.microsoft.com/en-us/library/system.reflection.fieldinfo.aspx
FieldInfo 클래스에서 SetValue 와 GetValue 메소드를 잘 이용하시면 필요한 경우에 따라 원하는 결과를 얻을 수 있을겁니다.
감사합니다. posted by 심재운
이 글이 도움이 되었다면 ❤️(공감)를 눌러주세요
좋아요
1
공유하기
URL 복사
카카오톡 공유
페이스북 공유
엑스 공유
게시글 관리
구독하기
재우니의 블로그
저작자표시
비영리
동일조건
'
닷넷관련
>
CSharp 🍚
' 카테고리의 다른 글
닷넷이란 무엇일까요?
(1)
2009.04.20
C# - CookieHelper 만들기
(1)
2009.04.14
C# ENUM 키워드의 Description 를 이용하여 값을 가져오기
(6)
2009.03.10
Generic Array 을 유용하게 사용해 보자
(2)
2009.03.10
성능 프로파일러를 사용하여 Generic(제네릭) 리스트와 ArrayList 비교
(0)
2009.02.15
재우니의 블로그
프로그램 언어 및 데이터베이스 또는 생활정보까지 다양한 정보 제공 합니다.
구독하기
글쓰기
관리자
카테고리
맨위로
티스토리툴바
관리메뉴열기
개인정보
티스토리 홈
포럼
로그인
재우니의 블로그
구독하기
닫기
단축키
내 블로그
내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W
블로그 게시글
글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C
모든 영역
이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift
+
/
⇧
+
/
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.