gpt4 book ai didi

c# - 如何跨 Visual Studio 项目初始化自动映射器

转载 作者:太空宇宙 更新时间:2023-11-03 20:48:58 26 4
gpt4 key购买 nike

我在我的 Visual Studio ASP.NET MVC 应用程序的多个 dll 项目中使用 automapper。我在我的主 WebUI 项目的 Application_Start() 方法中调用的每个项目中都创建了一个 AutoMapperConfiguration 类。

问题是我正在尝试以相同的方式为我的 Visual Studio 解决方案的每个单独项目初始化自动映射器,但我收到一条错误消息,指出自动映射器只能初始化一次...

如果我只为一个 ddl 项目而不是为多个 dll 项目执行初始化 automapper 的方式,我还会收到一条警告,在 8.1.1 版的 automapper 中指出 Mapper.Initialize 方法已弃用.在 9.0.0 版本中,初始化方法不再存在...

我怎样才能做到这一点?

谢谢你的帮助,

E.

我在每个 dll 项目中都有这段代码:

public class AutoMapperConfiguration
{
public static void ConfigureAutoMapper()
{
Mapper.Initialize(cfg =>
{
cfg.AddProfile<BusinessToDomainProfile>();
cfg.AddProfile<DomainToBusinessProfile>();
});
}
}

我在 Global.asax Appplication_Start 方法中将它称为我的主要 WebUI 项目:

   Domain.Mappers.AutoMapperConfiguration.ConfigureAutoMapper(); 
Business.Mappers.AutoMapperConfiguration.ConfigureAutoMapper();

最佳答案

将您的配置文件类放在不同的项目中,并在您的 ASP.NET MVC 项目中初始化一次 AutoMapper。

// Load all profiles in an assembly by specifying a type from the assembly
Mapper.Initialize(cfg => {
cfg.AddProfiles(typeof(Student), typeof(Course));
});

不要在任何类库项目 (dll) 中调用 Mapper.Initialize。可执行文件(Web 应用程序、控制台应用程序等)负责初始化。

关于c# - 如何跨 Visual Studio 项目初始化自动映射器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57464735/

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