Я пытаюсь привести дочерний класс к его родителю, но получаю InvalidCastException.Мой код следующий:
public class RepositoryMock<T> : IRepository<T> where T : ICleanableEntity
{ ... }
Тогда у меня есть следующий класс:
public class Telemetry : ICleanableEntity
{ .. }
И следующий метод:
public List<IRepository<ICleanableEntity>> GetCleanableRepositories()
{
var repo = new RepositoryMock<Telemetry>();
return new List<IRepository<ICleanableEntity>> { (IRepositort<ICleanableEntity>)repo };
}
Предыдущий код компилируется, ноон выдает InvalidCastException.
Я не очень опытен в C #, я из мира Java, где это возможно, но я проверил документацию для C #, и там говорится, что это можно сделать с помощью дисперсии.Кто-нибудь может дать мне подсказку о том, почему я не могу переходить из дочерних классов в родительские?