public void RefreshUserFields(FacebookUser user, dynamic userFields, params string[] fields) { var facebookFields = GetActualFields(user.GetType()); PropertyInfo userProperty; string facebookFieldName; object fieldValue; foreach (var facebookField in facebookFields) { userProperty = facebookField.Key; facebookFieldName = facebookField.Value != null ? facebookField.Value.JsonField : String.Empty; if (!String.IsNullOrEmpty(facebookFieldName)) { fieldValue = GetFBFieldValue(userFields, facebookFieldName.Split('.')); } else { fieldValue = GetFBFieldValue(userFields, new[] { userProperty.Name }); } if (fieldValue != null) { userProperty.SetValue(user, fieldValue, null); } } }