我已将AutoMapper.Extensions.Microsoft.DependencyInjection
和ConfigureServices
安装到我的项目中。我已将该行添加到Startup.cs
中的public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
services.AddDbContext<MusicDbContext>(opts => opts.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddSingleton<IRepository, MusicRepository>();
services.AddAutoMapper();
}
。
services.AddAutoMapper()
我在<% @cities.each do |city| %>
<%= check_box_tag "cities[]", city.id %> <%= city.city_name %>
<% end %>
下面仍然有一条红线。它说:
以下方法或属性之间的调用不明确:ServiceCollectionExtensions.AddAutoMapper(IServiceCollection,params Assembly [])和ServiceCollectionExtensions.AddAutoMapper(IServiceCollection,params Type [])
为什么会这样?所有的.NET Core都添加了自动阅读器指南,我已经阅读过show来这样做。
答案 0 :(得分:34)
我刚遇到这个问题就知道了 您需要包含以下Nuget包 AutoMapper.Extensions.Microsoft.Dependencyinjection
答案 1 :(得分:14)
我遇到了同样的问题,所以检查了sourcecode and tests以获得指导。看来你需要传递一个程序集或一个&#34;标记类型&#34;在您想要扫描的组件内。我选择了以下内容,因为我的Profile
类与Startup
类位于同一个程序集中。
services.AddAutoMapper(typeof(Startup));
答案 2 :(得分:10)
不确定为什么会发生这种情况,很可能与.NET Core 1.1
有关,但我找到了解决方法。
而不是在services.AddAutoMapper()
中执行ConfigureServices
,而是将其替换为以下内容。
var config = new AutoMapper.MapperConfiguration(cfg =>
{
cfg.AddProfile(new MappingProfile());
});
var mapper = config.CreateMapper();
services.AddSingleton(mapper);
MappingProfile()
所在的班级CreateMap
。
答案 3 :(得分:7)
在nuget中搜索,您可以访问automap
AutoMapper.Extensions.Microsoft.DependencyInjection
答案 4 :(得分:1)
我遇到了同样的问题。为了解决这个问题,我在project.csproj中使用了以下版本的AutoMapper:
AutoMapper Version="6.0.1"
AutoMapper.Extensions.Microsoft.DependencyInjection Version="1.2.0"
恢复所有包,最后关闭并打开visual studio。
答案 5 :(得分:0)
尽管安装了 AutoMapper 软件包(v8.1.0)和 AutoMapper.Extensions,但我遇到了相同的问题(在.NET Core 2.2,Visual Studio Code 1.34.0,Ubuntu OS中)。 .Microsoft.Dependencyinjection 软件包(v6.1.0)。
通过如下更改project.csproj中的软件包版本来解决该问题:
<PackageReference Include="AutoMapper" Version="8.0.0"/>
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="6.0.0"/>
由于软件包版本不匹配,因此看起来有点像。
答案 6 :(得分:0)
我有同样的问题。就我而言,解决方案是上述答案的组合:
using Automapper;
现在service.AddAutoMapper
应该可以正常工作。现在,您可以根据自己的喜好初始化Automapper。
答案 7 :(得分:0)
为automapper.extensions.microsoft.dependencyinjection添加Nuget程序包 最新的稳定版9
答案 8 :(得分:0)
安装软件包:
Install-Package AutoMapper.Extensions.Microsoft.DependencyInjection -Version 7.0.0
坚果:
https://www.nuget.org/packages/AutoMapper.Extensions.Microsoft.DependencyInjection/
答案 9 :(得分:-1)
您需要做的就是在 Startup.cs 文件的顶部使用AutoMapper添加 ; 。最好的运气!!!!