class Parent {
public string A { get; set; }
}
class Child : Parent {
public string B { get; set; }
}
Necesito obtener solo la propiedad B, sin la propiedad A, pero
Child.GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance)
devuelve ambas propiedades: /
c#
reflection
netmajor
fuente
fuente
Intente usar la marca de enlace DeclaredOnly. Debería limitar las propiedades devueltas solo a las declaradas en la clase que le interesa. Y aquí hay una muestra de código:
PropertyInfo[] properties = typeof(Child).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.DeclaredOnly);
fuente
Añadir
BindingFlags.DeclaredOnly
fuente
De Type.cs : en este caso, utilice 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;
fuente