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
6
A
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.
Ah, ok. Grazie per l'aiuto! – lushr
Che schifo. Voglio essere in grado di farlo. Ci deve essere un modo. –