Reflection
Basic Usage for Mirror
Getting type and names of properties for a class without having to instantiate it