У меня есть метод, подобный этому:
public ParentItem GetParentItem()
{
return GetChildItem();
}
public ChildItem GetChildItem()
{
return new ChildItem();
}
public void Run()
{
var item = GetParentItem();
var castedItem = (ChildItem) item;
}
Теперь приведение не выполнено, и я понимаю его, потому что вы не можете разыграть автомобиль в Ferrari.Тем не менее, я уверен, что есть способ достичь вышеизложенного, потому что я сделал это с представлениями в приложении MVC 5.
Я создал частичное представление, которое принимает модель ChildItem
, и когда я вызываю представление, я передаю ParentItem
, и представление может извлечь значения, о которых знает только ChildItem
.
У меня есть 2 вопроса:
1. Почему вышеуказанное работает для Views?
2. Как я могу заставить его работать в реальном классе c #?
Моя единственная правдоподобная теория состоит в том, что когда объект передается для просмотра, он сериализуется, и типы не имеют большого значения, потому что структуры идентичны.