我有课:
[DataContract]
public class MediaItem : Video
{
//used to protect calling api from the incorrectly named video
}
[DataContract]
public class SecureMediaItem : MediaItem
{
[DataMember]
public PlayerEmbedToken Token;
}
Run Code Online (Sandbox Code Playgroud)
然后我有以下代码:
List<MediaItem> dummyItems = new List<MediaItem>();
//cast the media item into a secure media item
SecureMediaItem retItem = (SecureMediaItem)dummyItems[mediaId];
//TODO: put in the Admin ID
retItem.Token.UserId = 1;
retItem.Token.IpAddress = VLSCore2.VlsSecurity.ParseIpFromString(ipAddress);
retItem.Token.UniquePlayerRef = Guid.NewGuid().ToString();
return retItem;
Run Code Online (Sandbox Code Playgroud)
但是我得到一个错误:
无法将类型为"VLSCore2.Entities.Security.Api.MediaItem"的对象强制转换为"VLSCore2.Entities.Security.Api.SecureMediaItem".
这只是一个广泛的演员,不是吗?像DataContract属性那样停止它的东西?
不,这与扩大的演员阵营相反.SecureMediaItem比具体更具体MediaItem.你可以把a转换SecureMediaItem为a MediaItem,因为a SecureMediaItem是a MediaItem.反过来说不起作用,因为a MediaItem不一定是SecureMediaItem.
| 归档时间: |
|
| 查看次数: |
109 次 |
| 最近记录: |