값을 얻고 설정하기 위해받는 클래스의 PropertyInfo에 의존하는 반사 작업을 수행하는 라이브러리가 있습니다.동적 객체의 PropertyInfo 가져 오기
이제 동적 객체로 작업 할 수 있기를 원하지만 동적 속성의 PropertyInfo를 얻는 방법을 찾을 수 없습니다. 나는 대체물을 체크했으나, PropertyInfo를 사용하여 값을 얻거나 설정하기 위해 어디에서든지 변경해야 할 필요가있다.
dynamic entity = new ExpandoObject();
entity.MyID = 1;
// - Always null
PropertyInfo p = entity.GetType().GetProperty("MyID");
// - Always null
PropertyInfo[] ps = entity.GetType().GetProperties();
// - These are called everywhere in the code
object value = p.GetValue(entity);
p.SetValue(entity, value);
는 그냥 동적 객체에이
GetValue()
및
SetValue()
의 사용할 수 있도록 얻거나 어떻게 든 PropertyInfo을 만들 수 있습니까?
나는 이것을 재현 할 수 없다. 'MyID'속성이 해당 엔터티에 존재하며 공개 된 것은 확실합니까? –
@DavidL 죄송합니다, 더 좋은 예를 게시하겠습니다. 그것은 역동적이어서 속성은 설정되고 공개 된 경우에만 존재합니다. – Danicco
실제 속성이 아닐 수도 있습니다. 런타임 바인딩을 이름/값 사전으로 리디렉션하여 'ExpandoObject' _simulate_ properties와 같은 일부 유형. –