Настройка
public interface ITable { }
public class Company : ITable {
public int Id { get; set; }
public string Name { get; set; }
}
public class PaginationGridModel {
public PaginationGridModel(IList<ITable> rows) {
//cool stuff goes here
}
}
public GridModel GenerateModel<T>(IQueryable<T> Table) where T : ITable {
return new GridModel((IList<ITable>)Table);
}
//Actual Call
return GenerateModel<Company>(this.dataContext.Companies);
Создано исключение
Unable to cast object of type 'System.Collections.Generic.List`1[Company]' to type 'System.Collections.Generic.IList`1[ITable]'.
Вопрос
Поскольку Company
реализует ITable
, я должен быть в состоянии преобразовать свой List<Company>
в IList<ITable>
, однако он не хочет работать, потому что на самом деле T
. Но T
ограничен в определении функции ITable
. Что я здесь не так делаю? Когда я не использую Generics, настройка работает просто отлично. Тем не менее, я хотел настройки Generic, потому что я снова и снова писал один и тот же код - что плохо:)
Любая помощь будет принята с благодарностью. Даже если ты скажешь мне, что это невозможно сделать.