C# 带有IList的EmitMapper和ValueInjector

C# 带有IList的EmitMapper和ValueInjector,c#,automapper,valueinjecter,emitmapper,C#,Automapper,Valueinjecter,Emitmapper,我正在为AutoMapper、FasMapper、valueinjector和EmitMapper运行性能测试,当我尝试映射类型列表IList 这是所有地图绘制者的用户代码: adapter.Adapt<IList<VacationModel>, IList<VacationDto>>(source)); adapter.Adapt(源代码)); 这是我的EmitMapper的适配器实现: public TTarget Adapt<TSour

我正在为AutoMapperFasMappervalueinjectorEmitMapper运行性能测试,当我尝试映射类型列表
IList

这是所有地图绘制者的用户代码:

adapter.Adapt<IList<VacationModel>, IList<VacationDto>>(source));
adapter.Adapt(源代码));
这是我的EmitMapper的适配器实现:

    public TTarget Adapt<TSource, TTarget>(TSource source)
    {
        return ObjectMapperManager.DefaultInstance.GetMapper<TSource, TTarget>().Map(source);
    }
    public TTarget Adapt<TSource, TTarget>(TSource source)
    {
        return Mapper.Map<TSource, TTarget>(source);
    }
publictTargetAdapt(TSource-source)
{
返回ObjectMapperManager.DefaultInstance.GetMapper().Map(源);
}
这适用于ValueInjector

    public TTarget Adapt<TSource, TTarget>(TSource source)
    {
        return ObjectMapperManager.DefaultInstance.GetMapper<TSource, TTarget>().Map(source);
    }
    public TTarget Adapt<TSource, TTarget>(TSource source)
    {
        return Mapper.Map<TSource, TTarget>(source);
    }
publictTargetAdapt(TSource-source)
{
返回Mapper.Map(源);
}
我有一个单独的接口来保存方法
Adapt(TSource-source)


我做错了什么?它正在为AutoMapper和FastMapper工作!如果我改为
List
它适用于所有映射者。

对于ValueInjector,如果你想映射一个collectionOk,你必须做一个循环,它可以工作,但在valueinjecter失败之后,它只赢了agains AutoMapper。您认为这会有所改进吗?取决于您如何定义Mapper.AddMap,您可以使用InjectFrom,也可以使用a.p1=b.p1;(如果性能对该特定映射非常重要);您可以在这里查看:查看AddMapYeah中的注释代码,因此,这不是关于特定映射的问题……而是关于我们应该使用哪个映射器的决定。当我们使用抽象的
ITypeAdapter
时,这应该尽可能通用,以防将来需要切换映射器(这在我们公司的几个项目中使用,因此如果切换映射器,我们不希望出现副作用)。如果您对如何为同样适用于ValueInjector的映射创建抽象有想法,请告诉我。我对ValueInjector印象深刻…圣诞快乐!对于ValueInjector,如果您想映射一个collectionOk,您必须执行一个循环,它是有效的,但在ValueInjector失败之后,它只赢得了agains AutoMapper。您认为这会有所改进吗?取决于您如何定义Mapper.AddMap,您可以使用InjectFrom,也可以使用a.p1=b.p1;(如果性能对该特定映射非常重要);您可以在这里查看:查看AddMapYeah中的注释代码,因此,这不是关于特定映射的问题……而是关于我们应该使用哪个映射器的决定。当我们使用抽象的
ITypeAdapter
时,这应该尽可能通用,以防将来需要切换映射器(这在我们公司的几个项目中使用,因此如果切换映射器,我们不希望出现副作用)。如果您对如何为同样适用于ValueInjector的映射创建抽象有想法,请告诉我。我对ValueInjector印象深刻…圣诞快乐!