2011-08-10 4 views
0

C#에서 리플렉션을 사용하여 클래스 멤버에서 객체 값을 가져 오는 방법은 무엇입니까?C#에서 리플렉션을 사용하여 클래스 멤버에서 객체 값을 가져 오는 방법은 무엇입니까?

나는이 :

public class Class1 { 
    public int field1; 
    public String field2; 
} 

public class Class2 { 
    public ind code; 
    public Class1 classRef; 
} 

는 내가 "classRef"값 회원의 목록을합니다.

+0

당신이 원하는 것을 분명하지 않다 가까운 생각 - Class2''의 인스턴스 주어진 classRef''의 값, 또는 Class1' '의 모든 필드의 값을, 주어진 그 클래스의 인스턴스. –

+0

왜 리플렉션을 사용하고 싶습니까? 어떤 문제를 해결하려고합니까? 회원이 공개이면; 그냥 액세스하십시오. – vcsjones

답변

1

내가이

var c2 = new Class2 
       { 
        code = 3; 
        Class1 = new Class1 
        { 
         field1 = 7; 
         field2 = "class 1" 
        } 
       }; 

var fields = c2.GetType().GetFields(); 
var field = fields.Where(fi=>fi.Name == "classRef").FirstOrDefault(); 
Assert.True(field != null); 
var value = field.GetValue(c2) as Class1; 

Assert.True(value != null); 
Assert.True(value.field1 == 7); 
Assert.True(value.field2 == "class 1"); 
+0

예 선생님 !! 감사합니다 !! :) –

+0

답을 자유롭게 표시해주세요. – Jason

관련 문제