윈폼(Winform)
C# Reflection(클래스의 필드명 모두 가져오고, 값 넣기)
SourceTree
2021. 11. 20. 09:20
반응형
Reflection(리플렉션) 예제
- 클래스의 모든 필드명 가져오기
- 가져온 필드의 타입 체크하기
- 해당 필드에 값 넣기
//데이터 클래스
class VoData {
public int no;
public string data1;
public string data2;
}
//클래스의 필드들 모두 가져오기
var fields = typeof(VoData).GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
//VoData 생성
VoData data = new VoData();
//int, string필드에 값 넣기
for(int i=0; i<fields.Length; i++) {
//int필드 체크
if(fields[i].FieldType == typeof(int)) {
fields[i].SetValue(data, 999);
}
//string필드 체크
else if(fields[i].FieldType == typeof(string)) {
//필드명 체크
if(fields[i].Name == "data1") {
fields[i].SetValue(data, "데이터1");
}
else if(fields[i].Name == "data2") {
fields[i].SetValue(data, "데이터2");
}
}
}
반응형