property from c# reflection getproperty bindingflags

c# - from - BindingFlags.IgnoreCase no funciona para Type.GetProperty()?



getproperty c# (3)

Gracias, esto realmente me ayudó en un apuro hoy. Tenía la información de auditoría guardada, pero con una cubierta incorrecta en los nombres de las propiedades. (La auditoría está integrada en una capa de datos.) De todos modos, tuve que agregar IgnoreCase como indicador vinculante, pero aún así no funcionó, hasta que mi compañero de trabajo encontró esta respuesta. La función resultante:

public static void SetProperty(Object R, string propertyName, object value) { Type type = R.GetType(); object result; result = type.InvokeMember( propertyName, BindingFlags.SetProperty | BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance, null, R, new object[] { value }); }

Esto es parte de una clase que llamo DotMagic.

Imagina lo siguiente

Un tipo T tiene un campo Compañía. Al ejecutar el siguiente método, funciona perfectamente:

Type t = typeof(T); t.GetProperty("Company")

Con la siguiente llamada me sale nulo, aunque

Type t = typeof(T); t.GetProperty("company", BindingFlags.IgnoreCase)

Alguien tiene una idea?


Ha sobrescrito los indicadores de búsqueda por defecto, si especifica nuevos indicadores, debe proporcionar toda la información para que se pueda encontrar la propiedad. Por ejemplo: BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance


Necesita agregar BindingFlags.Public | BindingFlags.Instance BindingFlags.Public | BindingFlags.Instance