【发布时间】:2011-09-06 09:46:32
【问题描述】:
我有课
class Video
{
public string name;
public string description;
}
因为它是通过 WCF 接口公开的,所以我想重命名它(业务对象现在已修改为封装音频和图像以及视频)。
所以我的解决方案是编写另一个继承自它的类:
class MediaItem : Video
{
}
我们有一个类似“工厂”的类,可以从数据库中获取视频。
public Video GetVideo(int videoId)
{
}
但是,当我调用以下命令时:
MediaItem itemToReturn = (MediaItem)contentManagerforPage.GetVideo(mediaId);
我得到错误:
无法将“Video”类型的对象转换为“MediaItem”类型。
我知道我不能这样做(将基类转换为子类)。那么解决办法是什么?
我无法通过 WCF 公开类名“视频”,我需要公开 MediaItem。是否有任何面向对象的方法来解决这个问题(也许使用接口)?
如果不能,我可以重命名 WCF 属性中的对象吗?
【问题讨论】:
标签: c# .net web-services wcf oop