c# – 使用automapper从HttpPostedFileBase映射到Byte []

c# – 使用automapper从HttpPostedFileBase映射到Byte [],第1张

概述我试图上传图片并使用automapper将其从HttpPostedFileBase转换为Byte [].这是我的CreateMap: Mapper.CreateMap<HttpPostedFileBase, Byte[]>() .ForMember(d => d, opt => opt.MapFrom(s => { 我试图上传图片并使用automapper将其从httpPostedfileBase转换为Byte [].这是我的CreateMap: @H_419_7@

@H_419_7@

Mapper.CreateMap<httpPostedfileBase,Byte[]>()            .ForMember(d => d,opt => opt.MapFrom(s =>                 {                    MemoryStream target = new MemoryStream();                    s.inputStream.copyTo(target);                    return target.ToArray();                }));
@H_419_7@我在s上得到一个错误:带有语句体的lambda表达式无法转换为表达式树.

@H_419_7@那么我应该如何编写我的CreateMap才能使其工作?

解决方法 至少有两种方法可以做到这一点: @H_419_7@

@H_419_7@>使用custom type converter:

@H_419_7@

public class httpPostedfileBaseTypeConverter :     ITypeConverter<httpPostedfileBase,byte[]>{    public byte[] Convert(ResolutionContext ctx)    {        var fileBase = (httpPostedfileBase)ctx.sourceValue;        MemoryStream target = new MemoryStream();        fileBase.inputStream.copyTo(target);        return target.ToArray();            }}
@H_419_7@用法:

@H_419_7@

Mapper.CreateMap<httpPostedfileBase,byte[]>()    .ConvertUsing<httpPostedfileBaseTypeConverter>();
@H_419_7@>使用ConstructUsing并以内联方式执行:

@H_419_7@

Mapper.CreateMap<httpPostedfileBase,byte[]>()    .ConstructUsing(fb =>{    MemoryStream target = new MemoryStream();    fb.inputStream.copyTo(target);    return target.ToArray();});
总结

以上是内存溢出为你收集整理的c# – 使用automapper从HttpPostedFileBase映射到Byte []全部内容,希望文章能够帮你解决c# – 使用automapper从HttpPostedFileBase映射到Byte []所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1219196.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存