static void SetValue (MemberInfo mi, object o, object val) { var fi = mi as FieldInfo; if (fi != null){ fi.SetValue (o, val); return; } var pi = mi as PropertyInfo; var setMethod = pi.GetSetMethod (); setMethod.Invoke (o, new object [] { val }); }