Gracias, esto realmente me ayudó en una pizca hoy. Tenía información de auditoría guardada, pero con una carcasa 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 un indicador vinculante, pero luego 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.