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(); }


Reply With Quote