为什么抛出'System.ArgumentException'类型的异常

时间:2017-09-02 05:52:03

标签: c# automapper

我使用的是automapper lib,用于将图像转换为byte [],将byte []转换为模型中的图像

m.CreateMap<Image, byte[]>().ConvertUsing<ImageToByteResolver>();
m.CreateMap<byte[], Image>().ConvertUsing<ByteToImageResolver>();

当我获取数据时,automapper将byte []数据转换为图像但转换数据中出现错误

public class ByteToImageResolver : ITypeConverter<byte[],Image>
{
    public Image Convert(byte[] source, Image destination, ResolutionContext context)
    {
        using (var memStream = new System.IO.MemoryStream(source))
        {
            using (var bitmap = Bitmap.FromStream(memStream))
            {
                return  (Image)bitmap;
            }
        }
    }
}

修改

这是我获取数据时的错误

但是,在将byte[]转换为image时,错误不会发生

1 个答案:

答案 0 :(得分:2)

我用更改转换代码解决了我的问题:

public Image Convert(byte[] source, Image destination, ResolutionContext context)
{            
    using (var memStream = new System.IO.MemoryStream(source))
    using (var bitmap = Bitmap.FromStream(memStream))
    {                    
        var img = (Image)bitmap;
        return (Image)img.Clone();
    }
}