Как передать 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, это не является ответом на реальный вопрос и, соответственно, будет иметь значение по существу.

Ответы на вопрос(3)

Ваш ответ на вопрос