У вас должно быть больше типов. Если какая-то страница не имеет ReferencedCompany
, то эта страница не является базовой страницей. Смотрите пример ниже:
class BasePage
{
//something common to ALL pages
}
class CompanyPage : BasePage
{
protected abstract Company ReferencedCompany
{
get;
}
}
class EmployeePage : BasePage
{
protected abstract IEnumerable<Employee> AllEmployees
{
get;
}
}
Если вы используете это с веб-формами ASP.NET и рассмотрите возможность использования шаблона MVP, он четко разделяет модель представления и презентатор.