Folgendes habe ich bisher getan:
var fields = typeof (Settings.Lookup).GetFields();
Console.WriteLine(fields[0].GetValue(Settings.Lookup));
// Compile error, Class Name is not valid at this point
Und das ist meine statische Klasse:
public static class Settings
{
public static class Lookup
{
public static string F1 ="abc";
}
}
props
anstelle vonfields
einen zukünftigen Entwickler verwirren kann. Eigenschaften sind ihre eigenen Dinge, und Felder sind es definitiv nicht.Antworten:
Sie müssen sich übergeben
null
zuGetValue
, da dieses Feld auf jeden Fall nicht , gehören tut:quelle
Sie müssen die Überladung Type.GetField (System.Reflection.BindingFlags) verwenden:
Beispielsweise:
quelle
Die Unterschrift von
FieldInfo.GetValue
istWo
obj
ist die Objektinstanz, von der Sie den Wert abrufen möchten, odernull
ob es sich um eine statische Klasse handelt? Das sollte also reichen:quelle
null
?FieldInfo.GetValue
Akzeptiert nicht nur einen einzelnen Parameter? Ich kann keine Überladungen vonGetValue
oder irgendetwas findenVersuche dies
quelle