public static void SetValue(MemberInfo info, object targetObject, object value)
{
if (info.MemberType == MemberTypes.Field)
((FieldInfo)info).SetValue(targetObject, value);
else if (info.MemberType == MemberTypes.Property)
((PropertyInfo)info).SetValue(targetObject, value, null);
else
throw new Exception("SetValue only implemented for fields and properties");
}