在阅读了Jimmy在AutoMapper和IoC上的博客文章之后,我尝试使用IoC来实现类似的东西。因此,我从这里了解到,IConfiguration将为IoC提供一个单例实例,用于定义对象映射。
Dim config as IConfiguration = Kernel.Get(Of IConfiguration)
Config.CreateMap(Of Source, Destination)因此,后来我编写了一个测试,以检查Mapper静态类做什么不同。在下面的测试中,我比较了两个不同的IConfiguration和IMappingEngine实例,并通过了测试。
所以,当IoC Mapper静态类做同样的事情时,我试图找出在AutoMapper中使用的目的是什么,即每次都提供IConfiguration的单例实例。
<TestMethod()>
Public Sub Test()
Dim c1 As IConfiguration = Mapper.Configuration
Dim c2 As IConfiguration = Mapper.Configuration
Dim e1 As IMappingEngine = Mapper.Engine
Dim e2 As IMappingEngine = Mapper.Engine
Assert.AreSame(c1, c2)
Assert.AreSame(e1, e2)
End Sub发布于 2011-03-11 19:02:03
如果您的组件包含配置为单例的映射,则可以确保配置为瞬态的组件通过注入映射组件来实现它们的依赖关系(映射)。
您不必以任何其他方式初始化其他地方的映射。
如果您有临时组件,您将确保映射初始化代码只运行一次,因为该组件被配置为单例,然后注入。
我自己也没有这样做过(我的组件大多是单片的),但这听起来是个不错的主意。
https://stackoverflow.com/questions/5276832
复制相似问题