private object GetMemberValue(object o, MemberInfo memberInfo) { PropertyInfo memberProperty = memberInfo as PropertyInfo; if (memberProperty != null) { return memberProperty.GetValue(o); } FieldInfo memberField = memberInfo as FieldInfo; if (memberField != null) { return memberField.GetValue(o); } throw new InvalidOperationException(); }