Ioc container 汽车制造商和国际奥委会

Ioc container 汽车制造商和国际奥委会,ioc-container,ninject,automapper,Ioc Container,Ninject,Automapper,在阅读了Jimmy Bogard的博客文章之后,我尝试使用Ninject作为IoC实现类似的功能。因此,我从中了解到,IoC将为用于定义对象映射的IConfiguration提供一个单例实例 Dim config as IConfiguration = Kernel.Get(Of IConfiguration) Config.CreateMap(Of Source, Destination) 所以后来我写了一个测试来检查映射器静态类有什么不同。在下面的测试中,我比较了I配置和IMappingE

在阅读了Jimmy Bogard的博客文章之后,我尝试使用Ninject作为IoC实现类似的功能。因此,我从中了解到,IoC将为用于定义对象映射的IConfiguration提供一个单例实例

Dim config as IConfiguration = Kernel.Get(Of IConfiguration)
Config.CreateMap(Of Source, Destination)
所以后来我写了一个测试来检查映射器静态类有什么不同。在下面的测试中,我比较了I配置IMappingEngine的两个不同实例,测试通过

因此,我试图找出当映射器静态类做同样的事情,即每次都提供IConfiguration的单例实例时,将IoC与AutoMapper一起使用的目的是什么

    <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

公共子测试()
尺寸c1为IConfiguration=Mapper.Configuration
尺寸c2作为IConfiguration=Mapper.Configuration
尺寸e1为IMappingEngine=Mapper.Engine
尺寸e2为IMappingEngine=Mapper.Engine
Assert.AreName(c1,c2)
Assert.AreName(e1,e2)
端接头

如果您有一个包含映射的组件配置为单例,则可以确保配置为瞬态的组件通过注入映射组件来实现其依赖项(映射)

您不必通过任何其他方式在别处初始化映射

如果您有瞬态组件,您可以确保映射初始化代码只运行一次,因为该组件配置为单例,然后注入


我自己没有这样做过(我的组件大多是单例的),但这听起来是个不错的主意。

如果您有一个包含映射的组件配置为单例,您可以确保配置为瞬态的组件通过注入映射组件来实现其依赖项(映射)

您不必通过任何其他方式在别处初始化映射

如果您有瞬态组件,您可以确保映射初始化代码只运行一次,因为该组件配置为单例,然后注入

我自己并没有这样做过(我的组件大多是单例),但这听起来是个不错的主意