Reflexion: Cast PropertyInfo List<obj>
Wie der Titel sagt, dann bin ich versucht zu werfen PropertyInfo
zu seiner "ursprünglichen" Art, die List<obj>
in meinem Fall.
Ich habe versucht den code unten ohne Glück:
(List<obj>)pInfo.GetValue(pInfo, null)
(List<obj>)pInfo.GetValue(typeof<obj>, null)
Es einfach, wirft mich eine Ausnahme:
TargetException war nicht behandelte: Objekt
nicht mit target.
Ich bin mir sicher, dass ich etwas Blick sehr einfach, aber ich kann nicht herausfinden, was.
- Einer der
pInfo
falsch ist, aber Sie zeigen nicht genügend code, um zu sagen, welche. - Das erste argument GetValue soll die Instanz, die Sie untersuchen. Wie es aussieht, gibt es die PropertyInfo-Objekt selbst, das ist verdächtig.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der erste parameter ist das target-Objekt:
Persönlich, obwohl, ich könnte versucht sein, zu verwenden, die nicht-generische API hier; generics und reflection selten gut mischen:
obj
aus. Muss ich Durchlaufen etwas? Alles was ich will ist einfach, um dieList<obj>
das ist "innen" die PropertyInfo.Bar
Eigentum und Sie versuchen zu bekommenfoo.Bar
, die Sie verwenden würdenprop.GetValue(bar, null);
personInstance.Name
müssen Sie ein ZielpersonInstance
und eine Eigenschaft.Name
. Ansonsten werden Sie sagen: "Es gibt 200 Menschen. Was ist Ihr Name?". Sie müssen sagen, dieIList
, Generika und Reflexion nur selten gut mischen.Diese:
falsch ist, ist das erste argument GetValue sollte das Objekt, das Sie gerade Lesen, die Eigenschaft, nicht die PropertyInfo selbst.
Du musst in dem Objekt, das Sie wollen, um den Wert und nicht der Typ. So etwas wie dieses.