2010-10-21 5 views
6

Sto lavorando su un progetto in cui viene caricato un nome di campo da XML e il campo con quel nome viene restituito e aggiunto all'oggetto corrente. Il problema è che FieldInfo.GetValue sembra restituire il valore corrente del campo, non un riferimento. C'è un modo per aggirarlo?Ottieni riferimento alla variabile da FieldInfo

risposta

7

No purtroppo non lo è. Il design di FieldInfo.GetValue consiste nel fornire il valore e non un riferimento. Non esiste un altro metodo adatto su FieldInfo per fornire un riferimento.

Una ragione per cui è che farlo sarebbe semplicemente pericoloso. Imagen lo scenario in cui l'oggetto è uno struct nello stack. Se un FieldInfo potrebbe fornire un riferimento a un campo di quello struct, fornirebbe un riferimento a un pezzo della pila che potrebbe andare via in qualsiasi momento. Leggere o scrivere quel riferimento dopo che lo stack è andato via sarebbe errato e un tipo di violazione della sicurezza.

+0

Ah, ok. Grazie per l'aiuto! – lushr

+0

Che schifo. Voglio essere in grado di farlo. Ci deve essere un modo. –