BindingFlags.IgnoreCase no funciona para el tipo.getProperty()?
Imagine lo siguiente
Un tipo T tiene una compañía de campo. Al ejecutar el siguiente método funciona perfectamente:
Type t = typeof(T);
t.GetProperty("Company")
Con la siguiente llamada obtengo null aunque
Type t = typeof(T);
t.GetProperty("company", BindingFlags.IgnoreCase)
¿Alguien tiene una idea?
3 answers
Ha sobrescrito los indicadores de búsqueda predeterminados, 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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-06 16:12:38
Necesitas agregar BindingFlags.Public | BindingFlags.Instance
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-11-05 10:07:38
Gracias, esto realmente me ayudó en un apuro hoy. Tenía información de auditoría guardada, pero con un casing incorrecto en los nombres de las propiedades. (La auditación está integrada en un datalayer.) De todos modos, así que tuve que agregar IgnoreCase como una bandera vinculante, pero luego todavía 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.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-26 07:55:41