法线贴图与动态贴图的区别-自动贴图

本文关键字:区别 动态 | 更新日期: 2023-09-27 18:29:15

以下代码之间有什么区别;

    List<Ogrenci> ogrenci = AutoMapper.Mapper.DynamicMap<IDataReader,   List<Ogrenci>>((dt.CreateDataReader()));
    var ogr = AutoMapper.Mapper.Map<IDataReader, IList<Ogrenci>>(dt.CreateDataReader());

当我尝试使用下面的代码时;

 AutoMapper.Mapper.CreateMap<IDataReader, Ogrenci>().ForMember(dest => dest.Numarasi, opt => opt.MapFrom(src => Convert.ToInt32(src["Numara"])))
            .ForMember(dest => dest.Adi, opt => opt.MapFrom(src => Convert.ToString(src["Ad"])))
            .ForMember(dest => dest.Soyadi, opt => opt.MapFrom(src => Convert.ToString(src["Soyad"])));
        List<Ogrenci> ogrenci = AutoMapper.Mapper.DynamicMap<IDataReader, List<Ogrenci>>((dt.CreateDataReader()));
        var ogr = AutoMapper.Mapper.Map<IDataReader, IList<Ogrenci>>(dt.CreateDataReader());

我不能使用下面的代码;

  List<Ogrenci> ogrenci = AutoMapper.Mapper.DynamicMap<IDataReader, List<Ogrenci>>((dt.CreateDataReader()));

但是我可以使用下面的代码;

   var ogr = AutoMapper.Mapper.Map<IDataReader, IList<Ogrenci>>(dt.CreateDataReader());

你有什么建议?

谢谢。

法线贴图与动态贴图的区别-自动贴图

当您在编译时不知道源类型时,会使用AutoMapper中的DynamicMap。你不能使用的原因
List<Ogrenci> ogrenci = AutoMapper.Mapper.DynamicMap<IDataReader, List<Ogrenci>>((dt.CreateDataReader()));

是因为DynamicMap不需要指定源类型,只需要指定目标类型。

AutoMapper功能:动态映射