It's nothing special, and it obviously doesn't contain every single class/type that you're ever gonna come across, however it could be useful in certain situations, such as debugging or logging.

Code:
public static string Dump(object o, bool ObjectType, bool ObjectValue)
        {
            System.Text.StringBuilder ReturnBuilder = new System.Text.StringBuilder();
            string Type = o.GetType().Name;
            ReturnBuilder.Append(Type);
            if (ObjectValue)
            {
                ReturnBuilder.Append(" > ");
                switch (Type.ToLower())
                {
                    case "boolean":
                        if ((Boolean)o == true)
                            ReturnBuilder.Append("true");
                        else
                            ReturnBuilder.Append("false");
                        break;
                    case "byte":
                    case "char":
                    case "decimal":
                    case "double":
                    case "float":
                    case "long":
                    case "int":
                    case "int16":
                    case "int32":
                    case "int64":
                    case "short":
                    case "string":
                        ReturnBuilder.Append(o);
                        break;
                    case "char[]":
                        ReturnBuilder.Append("{ ");
                        foreach(char c in ((char[])o)) {
                            ReturnBuilder.Append(c);
                            ReturnBuilder.Append(", ");
                        }
                        ReturnBuilder.Remove(ReturnBuilder.Length - 2, 1);
                        ReturnBuilder.Append("}");
                        break;
                    case "byte[]":
                        ReturnBuilder.Append("{ ");
                        foreach (byte b in ((byte[])o))
                        {
                            ReturnBuilder.Append(b);
                            ReturnBuilder.Append(", ");
                        }
                        ReturnBuilder.Remove(ReturnBuilder.Length - 2, 1);
                        ReturnBuilder.Append("}");
                        break;
                    case "string[]":
                        ReturnBuilder.Append("{ ");
                        foreach (string s in ((string[])o))
                        {
                            ReturnBuilder.Append("\"");
                            ReturnBuilder.Append(s);
                            ReturnBuilder.Append("\", ");
                        }
                        ReturnBuilder.Remove(ReturnBuilder.Length - 2, 1);
                        ReturnBuilder.Append("}");
                        break;
                    case "streamwriter":
                        ReturnBuilder.Append("Length ");
                        ReturnBuilder.Append(((System.IO.StreamWriter)o).BaseStream.Length);
                        ReturnBuilder.Append(" - Position ");
                        ReturnBuilder.Append(((System.IO.StreamWriter)o).BaseStream.Position);
                        break;
                    case "streamreader":
                        ReturnBuilder.Append("Length ");
                        ReturnBuilder.Append(((System.IO.StreamReader)o).BaseStream.Length);
                        ReturnBuilder.Append(" - Position ");
                        ReturnBuilder.Append(((System.IO.StreamReader)o).BaseStream.Position);
                        break;
                    case "process":
                        ReturnBuilder.Append(((System.Diagnostics.Process)o).ProcessName);
                        ReturnBuilder.Append(" ( ");
                        ReturnBuilder.Append(((System.Diagnostics.Process)o).Id);
                        ReturnBuilder.Append(" )");
                        break;
                }
            }
            return ReturnBuilder.ToString();
        }