gpt4 book ai didi

dependency-injection - 如何将 AutoMApper.5.2.0 与 Ninject 一起使用?

转载 作者:行者123 更新时间:2023-12-04 23:39:58 24 4
gpt4 key购买 nike

我现在正在开发一个大型的 ASP.NET MVC 5 项目,我正在通过使用 Ninject 框架来实现 DI。实际上,这是我第一次使用 Ninject,我迫切需要知道使用 AutoMApper 5.2.0 的最佳实践是什么。

谷歌搜索后,我发现了一些示例,这些示例演示了旧版本的 AutoMapper,这些示例在新版本中有一些不推荐使用的方法。

我的解决方案由以下项目组成:

  • 核心
  • 资料
  • 服务
  • 网站

  • 我在这个 link 中从事同一个项目.

    最佳答案

    您需要在 Ninject 中为 AutoMapper 设置三件事。

  • 绑定(bind)() AutoMapper.IMapper
  • 指示 AutoMapper 将 Ninject 用于其服务,以及
  • 使用您的映射初始化 AutoMapper。

  • 这是 NinjectModule我用于此目的:
    public class AutoMapperModule : NinjectModule
    {
    public override void Load()
    {
    Bind<IMapper>().ToMethod(AutoMapper).InSingletonScope();
    }

    private IMapper AutoMapper(Ninject.Activation.IContext context)
    {
    Mapper.Initialize(config =>
    {
    config.ConstructServicesUsing(type => context.Kernel.Get(type));

    config.CreateMap<MySource, MyDest>();
    // .... other mappings, Profiles, etc.

    });

    Mapper.AssertConfigurationIsValid(); // optional
    return Mapper.Instance;
    }
    }

    那么你只需注入(inject) AutoMapper.IMapper进入你的类,而不是使用静态的 Mapper

    关于dependency-injection - 如何将 AutoMApper.5.2.0 与 Ninject 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40937962/

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