如何配置AutoMapper,如果不是ASP.net应用程序?

3
我在解决方案中的多个项目中使用AutoMapper。这些项目可以独立部署,分布在多台服务器上。
在AutoMapper的文档中,它说:
如果您正在使用静态Mapper方法,则每个AppDomain只需要进行一次配置。这意味着放置配置代码的最佳位置是应用程序启动,例如ASP.NET应用程序的Global.asax文件。
虽然有些项目将是ASP.net,但大多数项目都是类库/ Windows服务。
在这种情况下,我应该在哪里配置我的映射?
2个回答

2
据我所知,应该只需要在每个 AppDomain 中执行一次映射即可。我通常会在程序初始化时执行我的映射。虽然我没有使用 AutoMapper,但我正在使用一个 IoC 库(Windsor),它需要一种类似映射的东西,这是从我的 program.cs 文件中完成的。因此,当应用程序加载时,它会执行映射,并且由于解析器是静态的并且位于共享库中,因此它可以全局使用。
我不知道这是否回答了你的问题,但本质上每个应用程序都有一个入口点,如果你需要立即在入口后进行映射,则最好将它们放置在入口处。

0

我选择将我的映射存储在每个项目的单独类中,以便它们可以重复使用。

    protected void Application_Start()
    {
        RegisterMaps();
    }

    private void RegisterMaps()
    {
        WebAutoMapperSettings.Register();
        BusinessLogicAutoMapperSettings.Register();
    }

这样,如果我想在另一个应用程序或 Web 服务中仅重用我的 BusinessLogic dll,我就可以轻松调用 BusinessLogicAutoMapperSettings.Register()。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接