在包更新后出现自动程序类型转换错误

本文关键字:程序 错误 类型转换 包更新 更新 | 更新日期: 2023-09-27 18:02:48

我在一个相对较旧的项目上更新了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);            
    }
}

在包更新后出现自动程序类型转换错误

他们改变了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);
    }
}