class Parent {
public string A { get; set; }
}
class Child : Parent {
public string B { get; set; }
}
Ich brauche nur Eigenschaft B, ohne Eigenschaft A aber
Child.GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance)
beide Eigenschaften zurückgeben: /
c#
reflection
netmajor
quelle
quelle
Versuchen Sie es mit dem DeclaredOnly-Bindungsflag. Es sollte die zurückgegebenen Eigenschaften nur auf diejenigen beschränken, die für die Klasse deklariert sind, an der Sie interessiert sind. Und hier ist ein Codebeispiel:
PropertyInfo[] properties = typeof(Child).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.DeclaredOnly);
quelle
Hinzufügen
BindingFlags.DeclaredOnly
quelle
Von Type.cs : Verwenden Sie in diesem Fall DeclaredOnlyLookup
private const BindingFlags DefaultLookup = BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public; internal const BindingFlags DeclaredOnlyLookup = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly;
quelle