Если метод универсальный, он должен включать все универсальные типы, включая TTypeConvertTo
.Возможно, вам не нужен TTypeConvertFrom
в качестве универсального типа, поэтому попробуйте:
public static List<TTypeConvertTo> ConvertFromEntityContext<TTypeConvertTo>
(this List<FromBaseModel> source)
Если вам нужно, чтобы оба типа были универсальными (что на самом деле не кажется необходимым), вам также необходимо иметь1006 * ограничен базовым типом, который имеет метод ConvertFromEntityContext
:
public static List<TTypeConvertTo> ConvertFromEntityContext<TTypeConvertFrom, TTypeConvertTo>
(this List<TTypeConvertFrom > source)
where TTypeConvertTo : BaseModel, TTypeConvertFrom : FromBaseModel
Это менее целесообразно, так как это сделает вызов слишком многословным: компилятор не может определить тип возврата, поэтомуПри каждом вызове метода необходимо указывать оба типа.
В любом случае, вы можете использовать LINQ для перезаписи тела вашего метода:
if (source == null)
return null;
return source.Select(item => item.ConvertFromEntityContext()).ToList();