/// <summary> /// Facade to set a value to a property or field /// </summary> /// <param name="member"></param> /// <param name="data"></param> /// <param name="value"></param> public static void SetValue(this MemberInfo member, object data, object value) { var prop = member as PropertyInfo; if (prop != null) { member.CastAs <PropertyInfo>().SetValue(data, value); return; } var field = member as FieldInfo; if (field != null) { member.CastAs <FieldInfo>().SetValue(data, value); return; } throw new NotSupportedException("Only fields and non indexed properties are supported"); }