ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

[非专业翻译] Mapster - 调试

2021-07-15 09:03:44  阅读:199  来源: 互联网

标签:非专业 ms 映射 步进 var Mapster 调试


[非专业翻译] Mapster - 调试

系列介绍

[非专业翻译] 是对没有中文文档进行翻译的系列博客,文章由机翻和译者自己理解构成,和原文相比有所有不同,但意思基本一致。

因个人能力有限,如有谬误之处还请指正,多多包涵。

正文

本文将说明 Mapster 如何调试映射

步进调试

这个插件允许使用Roslyn执行步进调试!

步进调试就是默认 F11 快捷键的调试

PM> Install-Package ExpressionDebugger
如何使用

在启动时或编译映射之前的任何地方添加以下代码:

TypeAdapterConfig.GlobalSettings.Compiler = exp => exp.CompileWithDebugInfo();

现在处于 DEBUG 模式时,可以步进调试映射代码:

var dto = poco.Adapt<SimplePoco, SimpleDto>(); //<--- 你可以步进调试到这段代码中

使用内部类或成员

调试模式不支持 privateprotectedinternal

查看映射逻辑

通过 ToScript 方法可以查看 Mapster 生成的映射逻辑:

var script = poco.BuildAdapter()
                .CreateMapExpression<SimpleDto>()
                .ToScript();

在Visual Studio for Mac中调试映射

在 Visual Studio for Mac 中进行步进映射调试,需要配置 EmitFiletrue

var opt = new ExpressionCompilationOptions { EmitFile = true };
TypeAdapterConfig.GlobalSettings.Compiler = exp => exp.CompileWithDebugInfo(opt);
...
var dto = poco.Adapt<SimplePoco, SimpleDto>(); //<--- 你可以步进调试到这段代码中

是否会对性能产生影响

RELEASE 编译模式下,Roslyn 编译器比默认的动态编译快2倍,因此不必担心会出现性能下降问题。

结果如下:

Method Mean StdDev Error Gen 0 Gen 1 Gen 2 Allocated
'Mapster 4.1.1' 115.31 ms 0.849 ms 1.426 ms 31000.0000 - - 124.36 MB
'Mapster 4.1.1 (Roslyn)' 53.55 ms 0.342 ms 0.654 ms 31100.0000 - - 124.36 MB

标签:非专业,ms,映射,步进,var,Mapster,调试
来源: https://www.cnblogs.com/staneee/p/14913801.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有