Reflection GetValue() "Object does not match the target type"

0

Mam taki kod

var prop = typeof(T).GetProperty(propName).GetValue(obj);

obj to IEnumerable<T>.

T to własną klasa z polem Id (którego to wartość chce uzyskać) oraz stringiem.

Dostaje błąd "Object does not match target type".
Nie za bardzo wiem co jest źle.
Pole jest pobierane poprawnie po nazwie więc błąd jest w samym sposobie dobierania się do wartości.
Jakieś pomysły?

0

Wow, wydaje mi się, że coś zostało źle przez ciebie zrozumiane. Próbujesz Id z klasy T wyciągnąć jako IEnumerable<T>? Twoje Id jest typu IEnumerable<T>? Mam wrażenie, że nie.

1

Odczytuje właściwość typu T a podajesz instancję kolekcji (obj) zamiast jej elementu

1

typeof(T).GetProperty(propName) zwraca Ci PropertyInfo dla żądanej właściwości z klasy T, czyli jak rozumiem Twojego Id. Jeśli później wywołasz GetValue możesz potem wywołać na obiekcie typu T, aby w runtime wyłuskać wartość tego Id. Ty zamiast użyć T używasz IEnumerable<T>, które nie ma właściwości Id.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0