internal virtual void Dump(TextWriter tw) { tw.WriteLine("Type: " + GetType().FullName); foreach (PropertyInfo pi in GetType().GetProperties()) { tw.WriteLine("{0}: {1}", pi.Name, pi.GetValue(this, null)); } }