当前位置: 首页 > news >正文

帝国企业网站模板小程序开发费用明细表

帝国企业网站模板,小程序开发费用明细表,g3云推广,wordpress安装说明上一篇文章集成了定时任务处理框架Hangfire#xff0c;完成了一个简单的定时任务处理解决方案。本篇紧接着来玩一下AutoMapper#xff0c;AutoMapper可以很方便的搞定我们对象到对象之间的映射关系处理#xff0c;同时abp也帮我们是现实了IObjectMapper接口#xff0c;先根… 上一篇文章集成了定时任务处理框架Hangfire完成了一个简单的定时任务处理解决方案。本篇紧接着来玩一下AutoMapperAutoMapper可以很方便的搞定我们对象到对象之间的映射关系处理同时abp也帮我们是现实了IObjectMapper接口先根据官方文档https://docs.abp.io/zh-Hans/abp/latest/Object-To-Object-Mapping 将AutoMapper添加依赖到项目中。在.Application层模块类中添加AbpAutoMapperModule模块依赖。//MeowvBlogApplicationModule.cs using Meowv.Blog.Application.Caching; using Volo.Abp.AutoMapper; using Volo.Abp.Identity; using Volo.Abp.Modularity;namespace Meowv.Blog.Application {[DependsOn(typeof(AbpIdentityApplicationModule),typeof(AbpAutoMapperModule),typeof(MeowvBlogApplicationCachingModule))]public class MeowvBlogApplicationModule : AbpModule{public override void ConfigureServices(ServiceConfigurationContext context){...}} } 在本项目中主要处理的就是实体和DTO之前的映射关系以之前写的BlogService.cs中的增删改查为例将Post.cs和PostDto.cs互相映射。先看GetPostAsync(int id)这个方法之前的做法是手动创建对象然后为其一个一个的赋值可以想象当我们的字段超级多的时候都得写一遍。现在有了AutoMapper一句代码就可以搞定。public async TaskServiceResultPostDto GetPostAsync(int id) {var result new ServiceResultPostDto();var post await _postRepository.GetAsync(id);if (post null){result.IsFailed(文章不存在);return result;}//var dto new PostDto//{// Title post.Title,// Author post.Author,// Url post.Url,// Html post.Html,// Markdown post.Markdown,// CategoryId post.CategoryId,// CreationTime post.CreationTime//};var dto ObjectMapper.MapPost, PostDto(post);result.IsSuccess(dto);return result; } ObjectMapper在ApplicationService中已经被注入我们的继承了ServiceBase可以直接使用。到这里还没完其中最重要的一步就是定义类与类之间的映射关系AutoMapper提供了多种定义类之间映射的方法有关详细信息请参阅AutoMapper的文档https://docs.automapper.org/其中定义一种映射的方法是创建一个Profile 类在.Application层添加MeowvBlogAutoMapperProfile.cs直接继承Profile在构造函数中定义即可。//MeowvBlogAutoMapperProfile.cs using AutoMapper; using Meowv.Blog.Application.Contracts.Blog; using Meowv.Blog.Domain.Blog;namespace Meowv.Blog.Application {public class MeowvBlogAutoMapperProfile : Profile{public MeowvBlogAutoMapperProfile(){CreateMapPost, PostDto();CreateMapPostDto, Post().ForMember(x x.Id, opt opt.Ignore());}} } 定义两个规则第一个从Post映射到PostDto因为PostDto所有属性在Post中都是存在的所以直接CreateMap即可第二个从PostDto映射到Post因为Post中存在Id属性而在PostDto中是没有的所以可以使用ForMember(...)来忽略掉Id属性。定义好映射规则后在模块类中添加使用。//MeowvBlogApplicationModule.cs ...public override void ConfigureServices(ServiceConfigurationContext context){ConfigureAbpAutoMapperOptions(options {options.AddMapsMeowvBlogApplicationModule(validate: true);options.AddProfileMeowvBlogAutoMapperProfile(validate: true);});} ... 使用同样的方式修改一下InsertPostAsync(PostDto dto)方法的代码。public async TaskServiceResultstring InsertPostAsync(PostDto dto) {var result new ServiceResultstring();//var entity new Post//{// Title dto.Title,// Author dto.Author,// Url dto.Url,// Html dto.Html,// Markdown dto.Markdown,// CategoryId dto.CategoryId,// CreationTime dto.CreationTime//};var entity ObjectMapper.MapPostDto, Post(dto);var post await _postRepository.InsertAsync(entity);if (post null){result.IsFailed(添加失败);return result;}result.IsSuccess(添加成功);return result; } 解放了双手代码也变少了真香去测试一下用了对象映射后的接口是否好使。可以看到结果也是可以出来的后续都将按照上面的方法大量用到对象映射。顺便介绍.HttpApi.Hosting层几个配置属性。路由规则配置默认Swagger中的路由是大写的如果我想转成小写可以使用以下配置代码都写在模块类MeowvBlogHttpApiHostingModule.cs中。public override void ConfigureServices(ServiceConfigurationContext context) { ...context.Services.AddRouting(options {// 设置URL为小写options.LowercaseUrls true;// 在生成的URL后面添加斜杠options.AppendTrailingSlash true;}); ... } 使用HSTS的中间件该中间件添加了严格传输安全头。public override void OnApplicationInitialization(ApplicationInitializationContext context) {...app.UseHsts();... } 直接使用默认的跨域配置。public override void OnApplicationInitialization(ApplicationInitializationContext context) {...app.UseCors();... } HTTP请求转HTTPS。public override void OnApplicationInitialization(ApplicationInitializationContext context) {...app.UseHttpsRedirection();... } 转发将标头代理到当前请求配合 Nginx 使用获取用户真实IP。public override void OnApplicationInitialization(ApplicationInitializationContext context) {...pp.UseForwardedHeaders(new ForwardedHeadersOptions{ForwardedHeaders ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto});... } 本篇介绍了如何使用AutoMapper搞定对象到对象间的映射篇幅简短内容比较简单你学会了吗????????????开源地址https://github.com/Meowv/Blog/tree/blog_tutorial
http://www.zqtcl.cn/news/680434/

相关文章:

  • 做搜狗pc网站软件下载广告设计与制作学什么
  • 软件工程 旅游网站开发er图昆山网站建设网站建设
  • 网站下载的网页修改下面版权所有企业建设营销型网站的目的有
  • 官方重大项目建设库网站手机ps软件如何做ppt下载网站
  • 全国加盟网站大全海尔网站建设目标
  • wordpress 企业站模版自己做视频网站可以吗
  • 建设电子商务网站的方法有广东网站开发收费
  • php网站页面转wordpress网站广告代码
  • 在线网站建设教程网站版面布局结构
  • 网站建设提议网站建设怎么在图片上加字
  • 网站模板但没有后台如何做网站家政网站开发
  • 自己办网站审批流程网页设计师的发展路径
  • 什么叫网站地图百度竞价排名费用
  • 企业网站建设顾问wordpress如何用API采集
  • win7网站后台无法编辑vr网站建设
  • 做头发个人网站制作素材dw中做网站的步骤
  • 学校网站做几级等保网页制作与维护
  • 十堰外贸网站建设松滋做网站
  • 网站导航条青浦徐泾网站建设
  • 厦门网站建设一般多少钱店铺域名是什么意思
  • 网站关键词搜索排名怎么做雅奇小蘑菇做网站好不好用
  • 手机网站案例建设网站地图素材
  • 企业网站制作比较好的如何设计一个网页首页代码
  • 维护网站成本网站建设进度图
  • asp.net做织梦网站设计手机网站建设
  • 江苏省住房和城乡建设局网站首页北京大型网站制作公司
  • 网站改版工作方案网站设计技能培训
  • 佳木斯市网站建设淄博网站开发招聘
  • 学习软件的网站先备案先建网站
  • 建立网站 知乎常州网站制作机构