foovar.GetType().GetProperty("PropertyName").GetValue(foovar)
을 광범위하게 사용하여 리플렉션을 통해 변수 변수의 속성 값을 가져옵니다. 하지만 인터페이스 유형에서는 작동하지 않습니다.리플렉션을 통해 인터페이스 속성 가져 오기
IFoo foo = GetFoo();
string fooName= foo.Name; //It works perfectly
구현에 액세스 할 수 없도록 제 3 자 어셈블리를 사용 중입니다. 'Name'속성이 있으며 값을 얻을 수 있습니다. 그러나 성찰을 통해서는 불가능합니다. 내가 string s = (string)foo.GetType().GetProperty("Name").GetValue(foo);
을하려고하면
는 내가 널 오류가 발생합니다 :이 중 어느 것도 "이름"입니다, 거기에 내가 PropertyInfo[] pi = foo.GetType().GetProperties();
확인했다
에는 '이름'속성이 없으며 나는 약 200 속성을 볼 수 있습니다. 사실 많은 다른 '인텔리 센스 특성'이 나타나지 않습니다.
인터페이스 유형의 속성 값을 다시 검색하려면 어떻게해야합니까?
감사합니다.
왜 이것을 반영해야합니까? ILSpy, dotPeek 또는 Reflector로 imlementation을 보려고 했습니까? –
런타임에 액세스해야하는 속성이 있습니다. 그것에는 많은 종류가 있습니다. 데이터베이스 나 XML을 통해 매번 사용할 속성 이름과 속성 유형을 얻은 다음 반사 및 제네릭을 사용하여 vaule을 가져옵니다. – Kaikus