public static StringBuilder GetProperties(object obj)
{
if (obj == null) return null;
Type t = obj.GetType();
PropertyInfo[] propertyInfo = t.GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic);
StringBuilder sb = new StringBuilder();
foreach (PropertyInfo pInof in propertyInfo)
{
string strLine = pInof.Name + " = ";
object objValue = pInof.GetValue(obj, null);
if (objValue != null && pInof.PropertyType.IsClass && !(objValue is String))
{
GetProperties(objValue);
}
else
{
if (objValue != null)
{
strLine += objValue.ToString();
}
}
sb.AppendLine(strLine);
}//foreach
return sb;
}