I couldn't come up with better title. I will try to explain what the problem is.
Currently I am trying to build dynamically created report structure. I define needed report in config file. When user wants to a report I simply parse from config and create. The struggle I have is about how I can implement a general structure but covers extra fields provided by interfaces.
In the image you can see the class diagram. What I want is I want to use
ReportStore for storing all shared and extensive reports and providing when needed. However In
ReportStore when user call
GetReportByName(reportName) I need to return a
ReportObject. This object may be
- To use
ISharedReportfor return value will cause losing extra field in objects based on
- If i want to return
IExtensiveReportit will violate.
- If I want to return plain object and cast in
ReportComposeraccording to value type will be complex and not developer friendly.
I am open for suggestion. Thank you in advance