程序包更新后自动映射ITypeConverter错误

时间:2016-08-18 08:10:55

标签: c# automapper

我在一个相对较旧的项目上更新了Automapper包。而且我很难理解本课程中需要改变的内容(或问题是否存在于其他地方)。

我得到了:

“'ResolutionContext'不包含SourceValue的定义,也没有扩展方法......”

public class PagedListConverter<T1, T2> : ITypeConverter<IPagedList<T1>, IPagedList<T2>>
{
    public IPagedList<T2> Convert(ResolutionContext context)
    {
        var models = (StaticPagedList<T1>)context.SourceValue;  // Error 
        var viewModels = models.Select(Mapper.Map<T1, T2>);

        return new StaticPagedList<T2>(viewModels, models.PageNumber,
                       models.PageSize, models.TotalItemCount);            
    }
}

1 个答案:

答案 0 :(得分:1)

他们改变了ITypeConverter。所以你需要改变你的代码:

public class PagedListConverter<T1, T2> : ITypeConverter<IPagedList<T1>, IPagedList<T2>>
{
    public IPagedList<T2> Convert(
    IPagedList<T1> source, 
    IPagedList<T2> destination, 
    ResolutionContext context)
    {
        var models = (StaticPagedList<T1>)source; 
        var viewModels = models.Select(Mapper.Map<T1, T2>);

        return new StaticPagedList<T2>(
            viewModels, 
            models.PageNumber,
            models.PageSize, 
            models.TotalItemCount);
    }
}