2012-06-15 3 views
0

리플렉션을 사용하여 부모 객체 내부의 childObject 참조를 제거해야합니다.리플렉션을 사용하여 parentObject 내의 childObject를 C#

var property = parentObject.GetType().GetProperty("ChildObject"); // get the property 
property.SetValue(parentObject, null, null); 

그것은 나를 왜 의문 않습니다 가정

public class ParentObject{ 
    public object ChildObject {get;set;} 
} 

/* Implementation */ 

ParentObject parentObject = new ParentObject(); 
object childObject = new Object(); 

//I set this using reflection (PropertyInfo SetValue operation) 
parentObject.ChildObject = childObject ; 

... 
//I want to remove the reference to the child object using reflection 
RemoveObjectUsingReflection(parentObject, childObject); 

Assert.IsNull(parentObject.ChildObject); //returns true 

function RemoveObjectUsingReflection(object parentObject, object childObject) 
{ 
    //Appreciate your help here 
} 
+0

현재 RemoveObjectUsingReflection 메서드에 다른 매개 변수 (parentObject의 childObject 속성 이름)를 추가하고 있습니다. –

답변

1

내가 제대로 당신은 단순히 null로 설정, "제거"무슨 뜻인지 이해 당신은 이것에 대한 성찰이 필요합니다.

+0

그가 그렇게하고 싶다면 그는 단지 할 수 있습니다. parentObject.ChildObject = null; 반사를 사용하지 않습니다. –

+0

childObject 객체가 "ChildObject"속성을 참조하는지 알 수 없습니다. childObject의 인스턴스 만 있습니다 –

+0

그래서 ... 당신의 문제는 정확히 무엇입니까? 내 수정 구슬이 현재 고장 났으니까. –

관련 문제