-
Apr 3rd, 2009, 05:19 AM
#1
Thread Starter
Hyperactive Member
Simple object type/value dump
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();
}
» Twitter: @rudi_visser : Website: www.rudiv.se «
If Apple fixes security flaws, they are heralded as proactive. If Microsoft fixes a security flaw, they finally got around to fixing their buggy OS.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|