試圖將 AutoMapper 添加到 Asp.net Core 2?
不久前我從事過一個 asp.net core 1.1 項目,並在 projetc AutoMapper 中使用。
在 asp.net core 1.1 中,我添加
services.AddAutoMapper()了啟動文件:asp.net core 1.1 中的啟動文件:
public void ConfigureServices(IServiceCollection services) { //Some Code services.AddMvc(); services.AddAutoMapper(); }而且我很容易在 Controller 中使用 AutoMapper。
控制器 :
public async Task<IActionResult> AddEditBook(AddEditBookViewModel model) { Book bookmodel = AutoMapper.Mapper.Map<AddEditBookViewModel, Book>(model); context.books.Add(bookmodel); context.SaveChanges(); }一切都很好。但是我目前正在開發一個 Asp.net Core 2 項目,並且
services.AddAutoMapper()在 sturtap 文件中出現錯誤。錯誤 CS0121 以下方法或屬性之間的呼叫不明確:“ServiceCollectionExtensions.AddAutoMapper(IServiceCollection, params Assembly[])”和“ServiceCollectionExtensions.AddAutoMapper(IServiceCollection, params Type[])”
這個錯誤的原因是什麼?此外,
services.AddAutoMapper在 asp.net core 2 中有一些參數。我應該向這個參數發送什麼?
您可能更新了 ASP.NET Core 依賴項,但仍使用過時的
AutoMapper.Extensions.Microsoft.DependencyInjection包。對於 ASP.NET Core,您至少需要
3.0.1來自 https://www.nuget.org/packages/AutoMapper.Extensions.Microsoft.DependencyInjection/3.0.1的版本其中引用 AutoMapper 6.1.1 或更高版本。
自動映射器 (> = 6.1.1)
Microsoft.Extensions.DependencyInjection.Abstractions (>= 2.0.0)
Microsoft.Extensions.DependencyModel (>= 2.0.0)
由於1.1.0 和 2.0之間發生了重大更改,較舊的包依賴於
Microsoft.Extensions.DependencyInjection.Abstractions1.1.0ASP.NET Core 並且不能與 ASP.NET Core 一起使用Microsoft.Extensions.DependencyInjection.Abstractions
如果您使用的是 AspNet Core 2.2 和 AutoMapper.Extensions.Microsoft.DependencyInjection v6.1 您需要在啟動文件中使用
services.AddAutoMapper(typeof(Startup));