gpt4 book ai didi

c# - Mapper 不包含 Initialize AutoMapper C# 的定义

转载 作者:行者123 更新时间:2023-12-03 23:35:16 24 4
gpt4 key购买 nike

我在 asp.net C# 项目中实现了 Auto Mapper,但出现错误:

Mapper does not contain a definition for Initialize



我试过这个例子 Link Here

我已经粘贴了我的代码:
namespace NewsWeb.Web.Infrastructure
{
public class AutomapperWebProfile:Profile
{
public AutomapperWebProfile()
{
CreateMap<DistrictDTO, District>().ReverseMap();
}

public static void Run()
{
Mapper.Initialize(a =>
{
a.AddProfile<AutomapperWebProfile>();
});
}
}
}

在我的 Golbal.asax.cs 文件中:
 AutomapperWebProfile.Run();

错误图像:
enter image description here

最佳答案

方法Mapper.Initialize自 v9.0.0 版( doc )起已过时,您需要使用 MapperConfiguration相反( doc )。

var config = new MapperConfiguration(cfg => {
cfg.AddProfile<AutomapperWebProfile>();
});

var mapper = config.CreateMapper();
// or
var mapper = new Mapper(config);

在 Golbal.asax 中使用静态方法初始化映射器不是一个灵活的解决方案。我建议直接在自定义映射器类中创建一个配置。
public interface IFooMapper 
{
Foo Map(Bar bar);
}

public class FooMapper : IFooMapper
{
private readonly IMapper mapper;

public FooMapper()
{
var config = new MapperConfiguration(cfg =>
{
cfg.AddProfile<FooProfile>();
});

mapper = config.CreateMapper();
}

public Foo Map(Bar bar) => mapper.Map<Foo>(bar);
}

关于c# - Mapper 不包含 Initialize AutoMapper C# 的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59713215/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com