2010-10-21 4 views
6

Je travaille sur un projet où un nom de champ XML est chargé et le champ portant ce nom est renvoyé et ajouté à l'objet en cours. Le problème est que FieldInfo.GetValue semble retourner la valeur actuelle du champ, pas une référence. Y a-t-il un moyen de contourner cela?Référence à la variable de FieldInfo

Répondre

7

Non, malheureusement, il n'y en a pas. La conception de FieldInfo.GetValue est de fournir la valeur et non une référence. Il n'y a pas d'autre méthode appropriée sur FieldInfo pour fournir une référence non plus.

L'une des raisons pour lesquelles cela serait simplement dangereux. Imagen le scénario où l'objet est un struct sur la pile. Si un FieldInfo pouvait fournir une référence à un champ de ce struct alors il fournirait une référence à un morceau de la pile qui pourrait disparaître à tout moment. La lecture ou l'écriture de cette référence après le départ de la pile serait incorrecte et constituerait une violation de la sécurité du type.

+0

Ah, d'accord. Merci pour l'aide! – lushr

+0

Ça craint. Je veux être capable de faire ça. Il doit y avoir un moyen. –

Questions connexes