非静态字段,方法或属性需要Automapper对象引用

我最近将.net核心升级到3.0,并将Automapper从6.2升级到9.0。现在,在mapfrom函数中使用mapper.map时,自动映射器将引发以下编译时错误。

MutableLiveData

非静态字段,方法或属性'Mapper.Map(xxx)'需要对象引用

Automapper已在其针对Mapper类Methods的新升级中删除了static关键字。

fei89123 回答:非静态字段,方法或属性需要Automapper对象引用

您的问题特定于映射器的配置文件,但帖子标题也与以下问题相关。就我而言,这不是完全相同的问题,但是我遇到了相同的错误。因此,我想与像我一样发生同样错误的任何人分享此内容。

看起来像Automapper不再是静态类。因此,您将需要实例化它。为此,您需要安装软件包:

Install-Package AutoMapper.Extensions.Microsoft.DependencyInjection

完成后,您可以像这样在类中注入IMapper实例:

public MyClass {

     private readonly IMapper _mapper;

     public MyClass(IMapper mapper){
          _mapper = mapper;
     }

     public DtoType SomeMethod(EntityType entity){
          // do your mapping..
          var myDtoType = _mapper.Map<DtoType>(entity);
     }
}

重要的是,由于您从未在ServiceCollection中注册IMapper,因此看起来有点黑魔法。但是Nuget程序包和ConfigureServices中对“ AddAutoMapper”的调用将为您解决所有这些问题。

PS:没在VS上写代码,但是你明白了。

,

我最近也遇到了问题,这是我所做的

已安装此软件包AutoMapper.Extensions.Microsoft.DependencyInjection。该软件包依赖于AutoMapper。它还包含针对AutoMapper的ASP.NET核心特定扩展,从而使其可以与内置的依赖项注入系统一起很好地发挥作用。

然后按照下面的链接上的步骤进行操作。那你应该很好走

https://dotnetcoretutorials.com/2017/09/23/using-automapper-asp-net-core/

本文链接:https://www.f2er.com/3121913.html

大家都在问