The*_*dge 0 c# asp.net webforms automapper automapper-5
既然AutoMapper正在废除静态API和在运行时更改映射的能力,那么在没有IoC管理器的情况下我的WebForms应用程序就会出现问题.
对于这个问题的缘故拿给出我不能提出一个IoC经理到这个应用程序,而这将是"好做",没有它的应用一直在努力罚款数年,并且它不能正确的进行此时此刻.在未来可能,但不是现在.
使用AutoMapper之前我曾经做过的事情是在我实例化的每个类中都有一个方法,它由构造函数自动调用.在那种方法中,我将有必要:
Mapper.CreateMap<>()
Run Code Online (Sandbox Code Playgroud)
调用.这具有以下优点:
我很高兴能够以这种方式满足每次执行操作的性能,而不是在Application_Start()中执行此操作.
但是使用AutoMapper 5 ... 从静态API读取迁移后,我现在必须:
如果我在上面的1.和2.中的假设是正确的,我现在有一大堆紧密耦合的意大利面条代码.
所以我的问题是:
如何在一个webforms应用程序中使用AutoMapper 5,在解决方案中有许多项目(因此有很多类型),没有优雅的IoC?
AutoMapper并没有取消静态API.只是随意修改配置的部分.事实证明,允许Mapper.CreateMap在任何时候都迫使我做出映射sloooooooow.
那个wiki页面我忘了删除.这是实际的指导:
https://github.com/AutoMapper/AutoMapper/wiki/Static-and-Instance-API
5.0升级指南:
https://github.com/AutoMapper/AutoMapper/wiki/5.0-Upgrade-Guide
整个故事是"摆脱你的Mapper.CreateMap调用到处洒满并将它们放在初始化中".您可以使用配置文件来帮助您.
但Mapper.CreateMap遍布整个应用程序总是危险的.这意味着您无法使用Mapper.AssertConfigurationIsValid,这是非常危险的.如果您无法断言配置验证,则不应使用AutoMapper.
归档时间: |
|
查看次数: |
1109 次 |
最近记录: |