c# – 使用automapper从HttpPostedFileBase映射到Byte []
发布时间:2020-12-16 02:02:51 所属栏目:百科 来源:网络整理
导读:我试图上传图片并使用automapper将其从HttpPostedFileBase转换为Byte [].这是我的CreateMap: Mapper.CreateMapHttpPostedFileBase,Byte[]() .ForMember(d = d,opt = opt.MapFrom(s = { MemoryStream target = new MemoryStream(); s.InputStream.CopyTo(tar
我试图上传图片并使用automapper将其从HttpPostedFileBase转换为Byte [].这是我的CreateMap:
Mapper.CreateMap<HttpPostedFileBase,Byte[]>() .ForMember(d => d,opt => opt.MapFrom(s => { MemoryStream target = new MemoryStream(); s.InputStream.CopyTo(target); return target.ToArray(); })); 我在s上得到一个错误:带有语句体的lambda表达式无法转换为表达式树. 那么我应该如何编写我的CreateMap才能使其工作? 解决方法
至少有两种方法可以做到这一点:
>使用custom type converter: 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(); } } 用法: Mapper.CreateMap<HttpPostedFileBase,byte[]>() .ConvertUsing<HttpPostedFileBaseTypeConverter>(); >使用ConstructUsing并以内联方式执行: Mapper.CreateMap<HttpPostedFileBase,byte[]>() .ConstructUsing(fb => { MemoryStream target = new MemoryStream(); fb.InputStream.CopyTo(target); return target.ToArray(); }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |