public static string GetObjectUpdateInfo<T>(T old, T current)
{
string info = string.Empty;
Type type = typeof(T);
PropertyInfo[] propertys = type.GetProperties();
foreach (PropertyInfo property in propertys)
{
if (property.PropertyType.IsValueType || property.PropertyType.Name == "String")
{
if (property.PropertyType.FullName.Contains("Guid")) continue;
object o1 = property.GetValue(old, null);
object o2 = property.GetValue(current, null);
string str1 = o1 == null ? string.Empty : o1.ToString();
string str2 = o2 == null ? string.Empty : o2.ToString();
if (str1 != str2) info += property.Name + " from " + str1 + " to " + str2 + "\r\n ";
}
}
return info;
}