It's a simple example which shows how to use reflection with factory pattern
The example uses reports generation as a subject area
- int value of report type which be generated
- useful data for report
- mark derived classes of base report via custom attribute with report type
- use reflection to find nesssary report class by custom attribute
- use reflection to create instance
Because used:
- basic OOP's principles
- factory pattern
- reflection
- attributes
- secure coding
Also you can expand and complement it for your purposes