C# 多态性/子类型冲突?

C# 多态性/子类型冲突?,c#,C#,基本上,我希望能够做到以下几点,但我认为我的类层次结构设计错了,或者缺少了与多态性/泛型集合相关的一些关键内容: ISearchableMediaList<IMedia> list = new MovieList(); ISearchableMediaList list=new MovieList(); 上面的行生成以下错误:无法将类型“MovieList”隐式转换为“ISearchableMediaList”。存在显式转换(是否缺少转换?)。我不应该在不强制转换的情况下用派生类

基本上,我希望能够做到以下几点,但我认为我的类层次结构设计错了,或者缺少了与多态性/泛型集合相关的一些关键内容:

ISearchableMediaList<IMedia> list = new MovieList();
ISearchableMediaList list=new MovieList();
上面的行生成以下错误:
无法将类型“MovieList”隐式转换为“ISearchableMediaList”。存在显式转换(是否缺少转换?
)。我不应该在不强制转换的情况下用派生类型替换接口吗?(有关更多详细信息,请参见底部的类图)


公共接口IMedia
{
字符串标题{get;set;}
双重评级{get;set;}
日期时间日期{get;set;}
字符串注释{get;set;}
}
公共类媒体:IMedia{…}
公共类电影:媒体{//添加电影特定属性}
公共类图书:媒体{//添加图书特定属性}
公共接口IMediaList:IsearchableMedia,其中T:IMedia
{ ... }
公共接口ISearchableMediaList:IList其中T:IMedia
{
IList SearchCategories{get;}
IList搜索(字符串查询、字符串类别);
}
公共类MediaList:BindingList,IMediaList,其中T:IMedia
{ 
//实现通用搜索功能和其他功能
}
公共级电影演员:MediaList
{ 
//实现特定于电影的搜索和其他功能
}
公共类图书目录:MediaList
{ 
//实现特定于书籍的搜索和其他功能
}


不能使用ISearchableList,必须使用适当的实现类型,如:

      ISearchableMediaList<Movie> list = new MovieList();
ISearchableMediaList list=new MovieList();

MovieList或BookList是否提供了MediaList以外的其他功能?@Moe:是的,它实现了特定于媒体类型以及其他内容的搜索功能。是的,这是我需要做的,但我希望我能够做到
ISearchableMediaList list=new MovieList()
看看是否有效。
      ISearchableMediaList<Movie> list = new MovieList();