У меня может быть несколько видов отчетов, каждый наследуется от ReportBase, например, CommonReport, WeekReport... И есть класс, который должен уметь работать со всеми видами отчетов, как это лучше всего сделать? Создать пустой интерфейс IReport конструктор ctor(IReport report) или передавать просто модель приведенную к базовому классу?
В IReport ты должен указать общие члены для отчётов, а в базовом классе реализовать интерфейс.
Потом везде передавать через интерфейс.
Остальные классы делаешь как угодно и они будут уже все IReport