Как передать 2 обобщенных типа в метод расширения [duplicate]
На этот вопрос уже есть ответ здесь:
Частичное определение типа 3 ответаЯ создал следующий метод расширения
public static T Map<TEntity,T>(this TEntity entity) where TEntity : IEntity
{
return Mapper.Map<TEntity, T>(entity);
}
Это позволяет следующее
Db.ExchangeSets.FirstOrDefault().Map<ExchangeSet, ExchangeSetSimpleViewModel>()
Однако мне интересно, если так или иначе, я могу изменить метод расширения, чтобы я мог вызвать укороченную версию следующим образом
Db.ExchangeSets.FirstOrDefault().Map<ExchangeSetSimpleViewModel>()
Пожалуйста, обратите внимание :
Вопрос о том, следует ли использовать автомаппер таким образом, не входит в суть вопроса, это скорее миссия по установлению фактов.
ОбновитьДля тех из вас, кто играет дома, с помощью комментария Скотта мне удалось найти дополнительное решение для вышеуказанной функции вОбщий метод расширения для автомпера
public static T Map<T>(this IEntity entity)
{
return (T)Mapper.Map(entity, entity.GetType(), typeof(T));
}
Однако, если не считать AutoMapper, это не является ответом на реальный вопрос и, соответственно, будет иметь значение по существу.