public class CustomProperty<T>
{
private T _value;
public CustomProperty(T val)
{
_value = val;
}
public T Value
{
get { return this._value; }
set { this._value = value; }
}
}
public class CustomPropertyAccess
{
public CustomProperty<string> Name = new CustomProperty<string>("cfgf");
public CustomProperty<int> Age = new CustomProperty<int>(0);
public CustomPropertyAccess() { }
}
//I jest beginer in reflection.
//How can access GetValue of CPA.Age.Value using fuly reflection
private void button1_Click(object sender, EventArgs e)
{
CustomPropertyAccess CPA = new CustomPropertyAccess();
CPA.Name.Value = "lino";
CPA.Age.Value = 25;
//I did like this . this is the error “ Non-static method requires a target.”
MessageBox.Show(CPA.GetType().GetField("Name").FieldType.GetProperty("Value").GetValue(null ,null).ToString());
}
0
A
답변
1
오류 메시지를 읽으십시오.
비 정적 메서드 및 속성은 클래스 인스턴스와 연결되어 있으므로 리플렉션을 통해 인스턴스에 액세스하려고 할 때 인스턴스를 제공해야합니다.
0
GetProperty.GetValue
메서드에서 속성 값을 가져올 개체를 지정해야합니다. GetValue(CPA ,null)
2
방법과 같은 방법에 대해 :
public Object GetPropValue(String name, Object obj) {
foreach (String part in name.Split('.')) {
if (obj == null) { return null; }
Type type = obj.GetType();
PropertyInfo info = type.GetProperty(part);
if (info == null) { return null; }
obj = info.GetValue(obj, null);
}
return obj;
}
을 그리고 같이 사용할 수 : 귀하의 경우, 그것은 것
Object val = GetPropValue("Age.Value", CPA);
관련 문제
- 1. 리플렉션을 사용하여 중첩 된 클래스에서 값 가져 오기
- 2. 다른 클래스에서 값 가져 오기
- 3. 일반 클래스에서 속성 및 값 가져 오기
- 4. 다른 클래스에서 TextBox 값 가져 오기
- 5. 클래스에서 열거 형 값 가져 오기
- 6. 부모 클래스에서 로컬 변수 값 가져 오기?
- 7. struts2 액션 클래스에서 값 가져 오기
- 8. 리플렉션을 사용하여 목록 사본 가져 오기
- 9. C# 리플렉션을 사용하여 필드 가져 오기
- 10. 리플렉션을 사용하여 클래스 메서드 가져 오기
- 11. PHP 리플렉션을 사용하여 속성의 기본값 가져 오기
- 12. 중첩 된 gridview에서 확인란 값 가져 오기
- 13. Entity Framework 4.0 - 제네릭 및 리플렉션을 사용하여 ID로 가져 오기
- 14. C# Debug Visualizer 리플렉션 : 리플렉션을 사용하여 복합 객체에 포함 된 속성 값 가져 오기
- 15. 리플렉션을 사용하여 dll의 특정 기본 유형의 모든 클래스 가져 오기
- 16. Repeater에 ItemData 값 가져 오기
- 17. jQuery : 클래스에서 ID를 가져 오기
- 18. Mootools를 사용하여 중첩 된 태그 가져 오기
- 19. 외부 클래스에서 변수 가져 오기
- 20. 가져 오기 값
- 21. XSLT를 사용하여 요소 값 가져 오기
- 22. 리플렉션을 사용하여 추상 기본 클래스에서 생성자에 액세스
- 23. 정적 클래스에서 리플렉션을 사용하여 속성 설정
- 24. Json.net에서 값 가져 오기
- 25. 클래스에서 패키지 이름 가져 오기
- 26. Embedded 클래스에서 BitmapData 가져 오기
- 27. 소비 클래스에서 경고 가져 오기
- 28. AppDelegate : ViewController에서 값 가져 오기?
- 29. 리플렉션을 통해 현재 MethodBase 가져 오기
- 30. 리플렉션을 통해 이벤트 매개 변수 가져 오기