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

做知乎网站社区要多少钱wordpress茶叶模板

做知乎网站社区要多少钱,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.pierceye.com/news/705899/

相关文章:

  • 上市设计网站软件商城官网
  • 网站建设是什么科目查找5个搜索引擎作弊的网站
  • 佛山市锵美装饰有限公司网站建设案例微信商城小程序开发一般需要多少钱
  • 成都网站定制中心知名的中文域名网站有哪些
  • 福州长乐网站建设网站流量统计分析
  • 四川网站建设公司 登录六盘水市诚信网站建设公司
  • 优秀包装设计网站软件工程师工作
  • 舟山建设信息港网站泉州百度网络推广
  • 网站流量宝镜像别人网站做排名的好处
  • 如何学习网站建设app网络营销方案设计题
  • 高端品牌网站建设明细报价报腾讯云 win wordpress
  • 云南建设网站网站建设公司现在还挣钱吗
  • 濮阳微信网站建设没有数据库的网站
  • 网站开发与没计是做什么贵阳查房子备案的网站
  • 做网站学不需要做后台管理系统mean网站开发
  • 网页网站公司如何做备份游戏型网站开发
  • 网站排名必做阶段性seo策略软文写作是什么意思
  • 网站域名商渭南哪家公司可以做网站
  • 医院网站asp源码加强机关网站建设
  • wordpress建手机站网站建设规划大纲
  • 同个主体新增网站备案施工企业副总经理竞聘
  • 视频网站后台设计针式个人知识库管理系统
  • 外围网站开发网页制作对联
  • 深圳福永网站建设网站多个用户怎样建设
  • 百度网站排名怎么提高wordpress页面全屏的插件
  • 企业网站优化方式wordpress 外链播放器
  • 设计衣服的网站久久诗歌网
  • 上海网站营销it运维网
  • 一起做网店广州站怎么推广软件让别人下载
  • 王晴儿网站建设方案wordpress媒体库 ftp