У меня есть класс
class Video
{
public string name;
public string description;
}
И поскольку он предоставляется через интерфейс WCF, я хочу переименовать его (теперь бизнес-объект был изменен для инкапсуляции звука и изображений, а также видео).
Поэтому я решил написать еще один класс, который наследуется от него:
class MediaItem : Video
{
}
У нас есть «фабричный» класс, который получает видео из базы данных.
public Video GetVideo(int videoId)
{
}
Однако, когда я звоню следующее:
MediaItem itemToReturn = (MediaItem)contentManagerforPage.GetVideo(mediaId);
Я получаю ошибку:
Невозможно привести объект типа «Видео» к типу «MediaItem».
Я понимаю, что не могу этого сделать (привести базовый класс к подклассу). Так в чем же решение?
Я не могу предоставить имя класса 'Video' через WCF. Мне нужно предоставить MediaItem. Есть ли какой-либо ОО подход к этой проблеме (возможно, с использованием интерфейса)?
Если нет, я могу переименовать объект в атрибутах WCF?