class Parent {
public string A { get; set; }
}
class Child : Parent {
public string B { get; set; }
}
Potrzebuję tylko właściwości B, bez właściwości A, ale
Child.GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance)
zwraca obie właściwości: /
c#
reflection
netmajor
źródło
źródło
Spróbuj użyć flagi powiązania DeclaredOnly. Powinien ograniczyć zwracane właściwości tylko do tych zadeklarowanych w klasie, która Cię interesuje. A oto przykładowy kod:
PropertyInfo[] properties = typeof(Child).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.DeclaredOnly);
źródło
Dodaj
BindingFlags.DeclaredOnly
źródło
From Type.cs : W tym przypadku użyj 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;
źródło