我创建了以下扩展方法
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>()
请注意 :
是否应该像这样使用automapper不在问题的范围内,它更像是一个事实发现任务
对于那些在家里玩的人,在scotts评论的帮助下,我设法找到一个额外的解决上述功能的通用扩展方法为automapper
public static T Map<T>(this IEntity entity) 
{
    return (T)Mapper.Map(entity, entity.GetType(), typeof(T));  
}
但是除了AutoMapper之外,这不是实际问题的答案,而是相应地标记优点
我想用通用扩展方法映射我的对象.
public class Customer    
{    
    public string FirstName { get; set; }    
    public string LastName { get; set; }    
    public string Email { get; set; }    
    public Address HomeAddress { get; set; }    
    public string GetFullName()    
    {  
        return string.Format(“{0} {1}”, FirstName, LastName);
    }    
}
这是viewmodel
public class CustomerListViewModel    
{    
    public string FullName { get; set; }
    public string Email { get; set; }    
    public string HomeAddressCountry { get; set; }    
}
所以我正在创建地图, Mapper.CreateMap<Customer, CustomerListViewModel>();
我想创建一个扩展方法
public static class MapperHelper
{ …