PropertyInfo.GetValue () "Das Objekt stimmt nicht mit dem Zieltyp überein."

7

Ich grabe zum ersten Mal in Reflection und ich bin wirklich festgefahren. Ich habe alles gegooglet, was mir einfällt. Ich bin 90% wo ich jetzt sein will.

Ich versuche, den Wert einer Eigenschaft in einer benutzerdefinierten Klasse durch Reflexion zurückzugeben.

Hier ist meine Klassendeklaration:

%Vor%

Die Klasse, die ich geschrieben habe, um die Klasse durch Reflexion zu betrachten, sieht folgendermaßen aus:

%Vor%

Ich habe einen Haltepunkt in die Zeile property_value = propInfo.GetValue (Me, Nothing) gesetzt, um zu sehen, was das Ergebnis ist.

So rufe ich meinen Code auf:

%Vor%

Durch Reflektion kann ich PropertyName und Type sehen, alles was ich brauche ist der Wert der Property! Wenn ich jetzt zum Haltepunkt komme, erhalte ich eine TargetException und die Fehlermeldung "Objekt stimmt nicht mit dem Zieltyp überein". Es ist jetzt 1 Uhr morgens und ich bin ruiniert, jede Hilfe würde jetzt geschätzt werden. Ich habe MSDN und Google zu Tode und dann beim letzten Mal zum Spaß durchsucht;)

    
StevenMcD 21.11.2008, 23:10
quelle

2 Antworten

20

Me bezieht sich auf das Objekt ObjectCompare , das sich von der Klasse unterscheidet, von der die PropertyInfo -Objekte abgeleitet wurden ( Class2 ). Sie müssen auch ein Objekt des Typs übergeben, von dem Sie die PropertyInfo -Objekte abgerufen haben.

%Vor%     
tvanfosson 22.11.2008, 00:41
quelle
1

Ich bin mir nicht wirklich sicher, ob ich weiß, was Sie hier machen wollen, aber ich werde es mir überlegen.

Hier ist der Code, auf den ich gekommen bin:

Anrufen :

%Vor%

Klasse :

%Vor%

Vergleichen :

%Vor%     
Nathan W 22.11.2008 00:49
quelle

Tags und Links