Wie durchläuft ich interne Eigenschaften in c #
public class TestClass
{
public string property1 { get; set; }
public string property2 { get; set; }
internal string property3 { get; set; }
internal string property4 { get; set; }
internal string property5 { get; set; }
}
Kann ich Durchlaufen und die Eigenschaften mit der folgenden Schleife, aber es zeigt nur öffentliche Eigenschaften. Ich brauche alle Eigenschaften.
foreach (PropertyInfo property in typeof(TestClass).GetProperties())
{
//do something
}
InformationsquelleAutor der Frage gangt | 2011-09-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie angeben, dass Sie müssen nicht nur die öffentlichen Eigenschaften, die über die überlastung Annahme
BindingFlags
:Hinzufügen
BindingFlags.Static
wenn Sie möchten, um unter anderem statische Eigenschaften.Parameterlose überladung gibt nur öffentliche Eigenschaften.
InformationsquelleAutor der Antwort Jon Skeet
Müssen Sie ändern die
BindingFlags
auf Ihren Anruf- Typ.GetProperties
Versuchen:
InformationsquelleAutor der Antwort jason
Laut MSDNprivate und interne nicht erkannt werden, die in der Reflection-API.
Wenn Sie schriftlich einige test Einheiten, möchten Sie vielleicht werfen Sie einen Blick auf InternalsVisibleTo Attribut. Sie können angeben, welche Baugruppen können interne Eigenschaften.
Und schließlich, die Sie wirklich brauchen, um haben interne Eigenschaften...
InformationsquelleAutor der Antwort Filip Popović
durch die Angabe, was bindingflags in GetProperties:
InformationsquelleAutor der Antwort MatteKarla
Verwenden BindingFlags
InformationsquelleAutor der Antwort amit_g