gpt4 book ai didi

c# - .NET 项目中首次设置 AutoMapper(6.2.2)

转载 作者:行者123 更新时间:2023-11-30 21:36:43 25 4
gpt4 key购买 nike

想使用 AutoMapper 来处理一些“猴子”代码。它的工作原理是正确的;现在希望在一个地方设置所有映射。所以,我有:

  1. AppStart 文件夹中的静态类 AutoMapperConfiguration。
  2. 我在其中调用 Mapper.Initialize() 的静态 Configure 方法。我从 Global.axax.cs 调用 Configure()在 Controller 中,我继续使用 Mapper.Map(src obj, dest obj)。但是,这给了我一个未映射的属性异常。

    When I use CreateMap inside a MappingConfiguration variable and do iMapper.Map(), it is working. Is this the right way to do it? If so, how to configure and use it from a single location? Can I use unity container?

最佳答案

因为我不想孤立这个问题;并为了任何(不幸的)人的利益而结束这个问题;这对我有用:

  1. 在 AutoMapperConfiguration 类的 Configure() 内部;而不是使用 Mapper.Initialize()句法;我设置了一个 MappingConfiguration 类型的属性,例如

    config = new MapperConfiguration(cfg =>
    {
    cfg.CreateMap<viewModel1, entity1>();
    cfg.CreateMap<viewModel2, entity2>();
    etc..
    });

2) 下一步是从 Global.asax.cs 调用 Configure()

这让我可以在 unityConfig.cs 中执行以下操作:

unityContainer.RegisterInstance<IMapper>(AutoMapperConfiguration.config.CreateMapper());

剩下的就是将一个 IMapper 实例注入(inject)我的 Controller 并像这样使用它:

mapper.Map(src obj, dest obj);

关于c# - .NET 项目中首次设置 AutoMapper(6.2.2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47923482/

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