Ситуация: у меня есть большое упакованное приложение, которое купила моя компания. Он должен быть расширяемым, Яда, Яда. Он имеет БД, DAL и BLL в виде SQL и DLL. Он также имеет проект MVC (расширяемая часть), но 95% части «Модель» находится в библиотеках DAL / BLL.
Проблема: мне нужно расширить одну из «Моделей», расположенных в BLL. Это объект User с 47 свойствами, 0 методами и без конструктора. То, что я начал, было простым отклонением их класса как:
public class ExtendedUser : BLL.DTO.User
{
public bool IsSeller { get; set; }
public bool IsAdmin { get; set; }
}
Это прекрасно работает, если я просто создаю новый ExtendedUser. Однако он заполняется другим вызовом в их BLL, например:
BLL.DTO.User targetUser = UserClient.GetUserByID(User.Identity.Name, id);
Я попробовал прямую попытку грубой силы, которая, конечно, создает исключение броска:
ExtendedUser targetUser = (ExtendedUser)UserClient.GetUserByID(User.Identity.Name, id);
Я рисую полный бланк этой очень простой концепции ОО. Я не хочу писать конструктор, который принимает существующий объект User, а затем копирует каждое из свойств в мой расширенный объект. Я знаю, что есть правильный способ сделать это. Кто-нибудь может дать мне пощечину и сказать очевидное?
ТИА