This example demonstrates how to dump object properties to console or some other stream using reflection. It works only on instance properties as there is rare need to dump out static part of objects.
The idea is simple:
- Create dictionary with properties and their values using reflection
- For null-values use empty string
- Step through dictionary and write properties and their values to given text writer
Code sample below demonstrates console application that dumps out properties of simple Person object. Be careful with object dumps when working with legacy code where properties may contain expensive code.
It's possible to move to extension methods with code above and have Dump() method for all non-static objects. Negative side of extension method is the fact that when it is in some other namespace then developers must be aware about this namespace. But if this piece of code is needed then they will know it of course.
Here is the extension method version of code above.