csharp print all properties of an object including children objects

Code Example - csharp print all properties of an object including children objects

                
                        public void DisplayObject(object obj)
{
	var type = obj.GetType();
	foreach (PropertyDescriptor descriptor in TypeDescriptor.GetProperties(type))
	{
		if (descriptor.PropertyType.IsClass 
			&& descriptor.PropertyType.Assembly.FullName == type.Assembly.FullName)
		{
			var value = descriptor.GetValue(obj);
			DisplayObject(value);
		}
		else
		{
			string name = descriptor.Name;
			object value=descriptor.GetValue(obj);
			Console.WriteLine("{0}={1}",name,value);
		}
	}
}