首页 文章

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

提问于
浏览
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();
        }
    

    这样,如果我只在另一个应用程序或webservice中重用我的BusinessLogic DLL,我可以轻松调用BusinessLogicAutoMapperSettings.Register()

相关问题