在 CreateMap 上引发异常

本文关键字:异常 CreateMap | 更新日期: 2023-09-27 18:30:27

嗨,我正在尝试将自动映射器添加到我的应用程序中,但我似乎在集成中遇到了一些问题。他就是我目前所拥有的。

为了不创建对Automapper的直接依赖,我为其最基本的功能创建了一个简单的映射:

public class AutoMapper : IAutoMapper
{
    public void CreateMap<TFrom, TTo>()
    {
        Mapper.CreateMap<TFrom, TTo>();
    }
    public TTo Map<TFrom, TTo>(TFrom data)
    {
        return Mapper.Map<TFrom, TTo>(data);
    }
}

我创建了一个配置文件:

 public class AutoMapperConfig
{
    private readonly IAutoMapper mapper;
    public AutoMapperConfig(IAutoMapper mapper)
    {
        this.mapper = mapper;
    }
    public void RegisterMappings()
    {
        mapper.CreateMap<ProductDTO , ProductDataContract>();
    }
}

并在我的Global.Asax中添加了一个电话:

new AutoMapperConfig(new AutoMapper()).RegisterMappings();

我有两个对象,我想创建一个映射:

public class ProductDTO
{
    public int ProductId { get; set; }
    public int CategoryId { get; set; }
    public int SubcategoryId { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
    public string Description { get; set; }
    public string ImagePath { get; set; }
    public int NumberOfProducts { get; set; }
}
public class ProductDataContract
{
    public int ProductId { get; set; }
    public int CategoryId { get; set; }
    public int SubcategoryId { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
    public string Description { get; set; }
    public string ImagePath { get; set; }
    public int NumberOfProducts { get; set; }
}

在我的代码中,我放置了这一行用于测试目的:
var products = productCatalogService.GetProducts(); 产品DTO ceva = 产品。FirstOrDefault(); var productsDataContract = mapper。地图(塞瓦);

问题是,当我运行我的应用程序时,我在尝试创建映射时立即在自动映射器中出现异常。这是类型初始化异常消息:

平台不支持此类型 IDictionaryFactory

我做错了什么?

在 CreateMap 上引发异常

听起来像是一个参考问题。 您应该引用自动映射器.dll并且AutoMapper.Net4.dll来自您的项目。 如果您通过 nuget 安装,则应为您处理。

在AutoMapper 3.0中,不同平台的软件包发生了变化。