Laden...

FieldInfo.GetValue liefert null (BindingFlags)

Erstellt von FeelFlow vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.372 Views
Thema geschlossen
F
FeelFlow Themenstarter:in
67 Beiträge seit 2010
vor 13 Jahren
FieldInfo.GetValue liefert null (BindingFlags)

Hallo.

In Anlehnung an mein letztes Problem ergibt sich ein weiterer Fehler.

Folgendes hat mir gfoidl zur hilfe gegeben:


Foo foo = new Foo();
Type t = typeof(Foo);
BindingFlags flags = BindingFlags.NonPublic | BindingFlags.Instance;
FieldInfo fi = t.GetField("_myField", flags);
object value = fi.GetValue(foo);
Console.WriteLine(value);
Console.ReadKey();

So nun habe ich das auf meine Bedürfnisse angepasst:


strVar = "test";
myForm frm = new myForm();
Type t = typeof(myForm);
BindingFlags flags = BindingFlags.NonPublic | BindingFlags.Instance;
FieldInfo fi = t.GetField(strVar, flags);
object value = fi.GetValue(frm);  //hier NullReferenceExeption... Debiugger ergibt fi = null
WriteLine(value.ToString());

myForm:


public partial class myForm : Form
{
      public int test = 42;
      ....
}

Warum ist fi = null?
Leider habe ich keine Ahnung über diese BindingFlags und komme deswegen nicht weiter. Was machen Bindingflags?

Gruß
Flo

Gelöschter Account
vor 13 Jahren

Was machen Bindingflags?

schau doch mal in die MSDN? --> :rtfm:

Warum ist fi = null?

weil du in den bindingflags angegeben hast das du NonPublic felder haben willst. dein feld ist aber public.

F
FeelFlow Themenstarter:in
67 Beiträge seit 2010
vor 13 Jahren

etweder bin ich zu blöd zum suchen... aber natürlich habe ich versucht vorher in die msdn zu schauen.

Aber dein Tipp hat schon geholfen. Danke!

Gelöschter Account
vor 13 Jahren

dann ein guter tipp von mir: klick

2.891 Beiträge seit 2004
vor 13 Jahren
49.485 Beiträge seit 2005
vor 13 Jahren

Hallo FeelFlow,

wenn ein Thread geschlossen wurde, dann ist es tabu einen neuen Thread zu dem gleichen Thema aufzumachen. Normalerweise werden solche Threads stillschweigend entfernt. In diesem Fall lasse ich den Thread ausnahmsweise stehen, um auch andere auf den genannten Umstand hinzuweisen.

Das es sich immer noch um das gleiche Thema handelt, geht nicht nur daraus hervor, dass du den alten, geschlossenen Thread verlinkt hast, sondern vor allem daraus, dass du eine konkrete Nachfrage zu einer Antwort aus dem anderen Thread stellst.

Ich erwarte, dass sich das nicht noch mal wiederholt.

==> geschlossen.

herbivore

Thema geschlossen