/avatar.png

Automapper 学习笔记

本文基于 Automapper 9.0.0

诊断 Automapper 的属性映射过程

1
2
3
4
5
var cfg = new MapperConfigurationExpression();
cfg.CreateMap<TypeB, TypeA>();

var configuration = new MapperConfiguration(cfg);
var executionPlan = configuration.BuildExecutionPlan(typeof(TypeB), typeof(TypeA));

最关键的一行代码 var executionPlan = configuration.BuildExecutionPlan(typeof(TypeB), typeof(TypeA));,此时查看 executionPlan 可以看到它对应的表达式树解析,看到属性如何映射。这里有个小技巧,安装 Visual Studio 插件 ReadableExpressions VS extension 可以更清晰的看到表达式树解析。需要注意应该在正式发布时移除所有的调试代码。

CSS 资源

文本与段落

  • 加载本地字体,通常按照从特殊到一般
1
font-family: Arial, 'Microsoft Yahei', sans-serif;
  • 加载 web 字体
1
2
3
4
5
6
@font-face {
  font-family: 'webfont';
  src: url('webfont.woff');
}

font-family: 'webfont', Arial, 'Microsoft Yahei', sans-serif;
  • 颜色
1
color: #077f3c;
  • 大小
1
font-size: 28px;
  • 字符间距
1
letter-spacing: 4px;
  • 文本方向
1
2
writing-mode: vertical-rl;
text-orientation: mixed;
  • 文本样式
1
text-decoration: underline line-through;
  • 行间距
1
line-height: 36px;
  • 缩进
1
text-indent: 2em;
  • 折行
1
white-space: nowrap;
  • 省略
1
2
3
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
  • 对齐
1
text-align: justify;
  • 设置背景颜色
1
background-color: #8be5ac;
  • 加载背景图片
1
background-image: url(./bg.jpg);
  • 调整背景尺寸
1
background-size: 50px;
  • 调整背景填充
1
background-repeat: no-repeat;
  • 调整背景位置

雪碧图通常使用该属性实现

Visual Studio Code 专栏学习笔记

专栏地址:https://time.geekbang.org/column/article/40098

常用命令

  • 打开命令面板:Ctrl+Shift+P F1
  • Cmd 窗口命令:CodeCode --help查看命令帮助,Cmd 命令加| Code -可直接将 Cmd 命令的结果输出到 VS Code 的一个页面中,方便后续操作
  • 编辑操作:
  1. 删除当前行:Ctrl+Shift+K
  2. 剪切当前行:Ctrl+Shift+X
  3. 复制当前行:Ctrl+Shift+C
  4. 新起一行到下一行:Ctrl+Enter
  5. 新起一行到上一行:Ctrl+Shift+Enter
  6. 当前行向上\下移动:Alt+↑\↓
  7. 向上\下复制当前行:Alt+Shift+↑\↓
  8. 添加行注释:Ctrl+/
  9. 添加块注释:Alt+Shift+A
  10. 代码格式化(需安装各个语言对应的插件):Alt+Shift+F
  11. 选中段代码格式化:Ctrl+K Ctrl+F
  12. 光标回退到之前位置:Ctrl+U
  13. 在一个函数的括号中跳转:Ctrl+Shift+\
  • 多光标:Ctrl+Alt+鼠标 Ctrl+Alt+↑\↓ Ctrl+D Ctrl+D(选中重复的单词为他们生成多光标) Alt+Shift+I

Visual Studio Code 学习笔记

主框架

  • 隐藏、开启侧边栏:Ctrl+B
  • 交互式演习场 Help -Interactive Playground 可以帮助学习 VS Code

编辑区分栏

  • 创建一个新的分栏:Ctrl+\
  • 关闭当前选中的分栏:Ctrl+W
  • 在三个分栏间切换:Ctrl+1,2,3

资源管理器

  • 移动选中文件后快速打开该文件到编辑区:Ctrl+Enter
  • 快速搜索一个文件(执行其他命令):Ctrl+P

配置编辑器

VS Code 给予了我们很灵活的配置项,可以通过 user settings 设置全局项,或通过 workspace settings 设置每一个项目或文件夹的配置。设置的值保存在一个 setting.json 文件中。

WPF 技术点

常用Path路径

  • 正三角形(左):<Path Data=“M40,0 L0,30 40,60 z” Stretch=“Uniform”/>
  • 正三角形(上):<Path Data=“M0,40 L30,0 60,40 z” Stretch=“Uniform”/>
  • 正三角形(右):<Path Data=“M0,0 L40,30 0,60 z” Stretch=“Uniform”/>
  • 正三角形(下):<Path Data=“M0,0 L30,40 60,0 z” Stretch=“Uniform”/>
  • 矩形:<Path Data=“M0,0 L1,0 L1,1 L0,1 z” Stretch=“Uniform”/>
  • 圆形:<Path Data=“M100,50 C100,77.614237 77.614237,100 50,100 C22.385763,100 0,77.614237 0,50 C0,22.385763 22.385763,0 50,0 C77.614237,0 100,22.385763 100,50 z” Stretch=“Uniform”/>
  • 箭头(左):<Path Data=“M40,0 L0,30 40,60” Stretch=“Uniform”/>
  • 箭头(上):<Path Data=“M0,40 L30,0 60,40” Stretch=“Uniform”/>
  • 箭头(右):<Path Data=“M0,0 L40,30 0,60” Stretch=“Uniform”/>
  • 箭头(下):<Path Data=“M0,0 L30,40 60,0” Stretch=“Uniform”/>
  • 半圆(左):<Path Data=“M34,0 L34,68 C15.222317,68 0,52.777684 0,34 0,15.222319 15.222317,3.5762787E-07 34,0 z” Stretch=“Uniform”/>
  • 半圆(上):<Path Data=“M34,0 C52.777684,7.1525574E-07 68,15.222319 68,34.000001 L0,34.000001 C3.5762787E-07,15.222319 15.222319,7.1525574E-07 34,0 z” Stretch=“Uniform”/>
  • 半圆(右):<Path Data=“M0,0 C18.777683,3.5762787E-07 34,15.222319 34,34 34,52.777684 18.777683,68 0,68 z” Stretch=“Uniform”/>
  • 半圆(下):<Path Data=“M0,0 L68,0 C68,18.777681 52.777684,34 34,34 15.222319,34 3.5762787E-07,18.777681 0,0 z” Stretch=“Uniform”/>
  • 椭圆矩形(水平):<Path Data=“M34,0 L76,0 C94.777683,9.8347664E-07 110,15.222319 110,34.000001 110,52.777684 94.777683,68.000001 76,68.000001 L34,68.000001 C15.222317,68.000001 0,52.777684 0,34.000001 0,15.222319 15.222317,9.8347664E-07 34,0 z” Stretch=“Uniform”/>
  • 椭圆矩形(垂直):<Path Data=“M34.000001,0 C52.777684,0 68.000001,15.222321 68.000001,34 L68.000001,76 C68.000001,94.777681 52.777684,110 34.000001,110 15.222319,110 8.9406967E-07,94.777681 0,76 L0,34 C8.9406967E-07,15.222321 15.222319,0 34.000001,0 z” Stretch=“Uniform”/>
  • 菱形:<Path Data=“M150,0 L0,75 0,225 150,300 300,225 300,75 z” Stretch=“Uniform”/>

Stretch 默认使用 Uniform,在这种参数下矩形为正方形、圆形为正圆形,如果修改 StretchFill,则根据容器高宽进行自由拉伸。

Windows 下搭建网络代理

场景: 有些场景下会出现局域网内的某些网段可能由于安全限制,不能访问外网,此时可以通过安装一些工具来实现借助局域网内某些能够上外网的电脑来实现网络代理的功能。以下工具均是使用于Window环境。