如何在 ASP.Net Core 6 中设置 AutoMapper

问题描述 投票:0回答:7

如何在 ASP.Net Core 6 中配置 AutoMapper

我有一个用 .Net 3.1 编写的项目,所以我们有 Startup.cs 类。

我正在将其迁移到.net core 6

现在当我将以下配置放入我的.Net 6 Program.cs中时

             builder.Services.AddAutoMapper(typeof(Startup));

我收到错误,找不到类型或命名空间启动

有什么建议吗?我该如何修复它或在 .net 6 中配置它

asp.net-core automapper .net-6.0
7个回答
43
投票

安装包

  • dotnet 添加包 AutoMapper.Extensions.Microsoft.DependencyInjection

Program.cs

builder.Services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());

创建MappingProfiles.cs

namespace XXX.XXX.Helpers;

public class MappingProfiles: Profile {
    public MappingProfiles() {
        CreateMap<Address, AddressDto>();
    }
}

28
投票

改用这一行:

typeof(Program).Assembly


18
投票

对于那些像我一样不知道的人。

  1. 通过 NuGet 或通过
    dotnet add package AutoMapper.Extensions.Microsoft.DependencyInjection
  2. 安装 DI 的 AutoMapper 扩展
  3. 然后在 Program.cs 文件中注册服务:
    builder.Services.AddAutoMapper(typeof(<name-of-profile>));
    (在 .NET 6 中我们不再有 StartUp.cs)

我使用配置文件来进行映射配置。这是来自 Automapper 的有关配置文件的链接


1
投票

使用此行修复:

builder.Services.AddAutoMapper(typeof(Program));


0
投票

尝试将此

line of code
添加到您的
Program.cs
中。

services.AddAutoMapper(Assembly.GetExecutingAssembly());


0
投票

AutoMapper.Extensions.Microsoft.DependencyInje 显示已弃用


-2
投票

安装 AutoMapper 软件包(版本根据您的项目要求)

Install-Package AutoMapper.Extensions.Microsoft.DependencyInjection -Version 9.0.0

之后在 Startup.cs 上的 CinfigureServices 中注册一个服务

using AutoMapper;
public void ConfigureServices(IServiceCollection services){
    services.AddAutoMapper(typeof(Startup));
}
© www.soinside.com 2019 - 2024. All rights reserved.