Контравариантность в словарном значении
Почему это не законный код?
public interface IExcelExport<in T>
{
byte[] ExportSheetsToExcel(IDictionary<string, IEnumerable<T>> data, bool formatDateColumns = true);
}
Что дает эту ошибку.
Invalid variance: The type parameter 'T' must be invariantly valid on 'IExcelExport<T>.ExportSheetsToExcel(IDictionary<string, List<T>>, bool)'. 'T' is contravariant.
Почему я не могу использовать контравариантный тип в качестве значения словаря? Есть потенциальные обходные пути?