<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>码栈工坊</title><link>https://www.codepub.top/</link><description>代码分享的平台</description><item><title>告别丑陋界面！HandyControl 助力 WPF 开发者打造美观桌面应用</title><link>https://www.codepub.top/post/262.html</link><description>&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(89, 89, 89); margin: 30px 0px 15px; align-items: unset; background-attachment: scroll; background-clip: border-box; background-color: unset; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: flex; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; padding: 0px; text-align: left; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible;&quot; class=&quot;js_darkmode__7&quot;&gt;&lt;span style=&quot;font-size: 22px; color: #595959; border-color: #000000 #000000 #595959; line-height: 1.5em; letter-spacing: 0em; padding: 0px; align-items: unset; background-attachment: scroll; background-clip: border-box; background-color: unset; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; margin: 0px; overflow: unset; text-align: left; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible;&quot; class=&quot;js_darkmode__8&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;项目简介&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;color: rgb(89, 89, 89); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; text-indent: 0em; margin: 0px; padding: 8px 0px; visibility: visible;&quot; class=&quot;js_darkmode__9&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;HandyControl 是一套基于 WPF（Windows Presentation Foundation）的控件库，它几乎重写了所有原生 WPF 控件的样式，并提供了 80 余款高质量的自定义控件。该项目旨在为 WPF 开发者提供更加丰富、美观且易于使用的界面组件，从而提升开发效率和用户体验。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin: 10px 0px; padding: 0px; display: flex; flex-direction: column; justify-content: center; align-items: center; visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;img data-src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/zvabLLprOiajsk30rRR8WoK0hLTRGlWVRnvqP9Drm7odhRnoQ5ZIHQo1hG9Seb4h5ehGqicCQpCtKGcD1Vjue2lQ/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=1&quot; class=&quot;rich_pages wxw-img js_darkmode__10&quot; data-ratio=&quot;0.6428571428571429&quot; data-type=&quot;png&quot; data-w=&quot;1064&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 657px !important;&quot; data-imgfileid=&quot;100002508&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;4&quot; src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/zvabLLprOiajsk30rRR8WoK0hLTRGlWVRnvqP9Drm7odhRnoQ5ZIHQo1hG9Seb4h5ehGqicCQpCtKGcD1Vjue2lQ/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=1&quot; _width=&quot;677px&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776236016172&quot; data-report-img-idx=&quot;1&quot; data-fail=&quot;0&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;&lt;/p&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(89, 89, 89); margin: 30px 0px 15px; align-items: unset; background-attachment: scroll; background-clip: border-box; background-color: unset; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: flex; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; padding: 0px; text-align: left; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible;&quot; class=&quot;js_darkmode__11&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 22px; color: #595959; border-color: #000000 #000000 #595959; line-height: 1.5em; letter-spacing: 0em; padding: 0px; align-items: unset; background-attachment: scroll; background-clip: border-box; background-color: unset; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; margin: 0px; overflow: unset; text-align: left; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible;&quot; class=&quot;js_darkmode__12&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;应用场景&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;color: rgb(89, 89, 89); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; text-indent: 0em; margin: 0px; padding: 8px 0px; visibility: visible;&quot; class=&quot;js_darkmode__13&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;HandyControl 适用于需要构建复杂、美观且交互性强的 WPF 桌面应用程序的场景。无论是企业级应用、数据可视化工具、多媒体应用还是其他类型的桌面软件，HandyControl 都能提供有力的支持。通过其丰富的控件集和高度可定制的样式，开发者可以快速构建出符合设计要求的用户界面。&lt;/span&gt;&lt;/p&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(89, 89, 89); margin: 30px 0px 15px; align-items: unset; background-attachment: scroll; background-clip: border-box; background-color: unset; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: flex; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; padding: 0px; text-align: left; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible;&quot; class=&quot;js_darkmode__14&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 22px; color: #595959; border-color: #000000 #000000 #595959; line-height: 1.5em; letter-spacing: 0em; padding: 0px; align-items: unset; background-attachment: scroll; background-clip: border-box; background-color: unset; background-image: none; background-origin: padding-box; background-position: 0% 0%; background-repeat: no-repeat; background-size: auto; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; margin: 0px; overflow: unset; text-align: left; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible;&quot; class=&quot;js_darkmode__15&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;功能模块&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;color: rgb(89, 89, 89); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; text-indent: 0em; margin: 0px; padding: 8px 0px; visibility: visible;&quot; class=&quot;js_darkmode__16&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;HandyControl 包含了多个功能模块，每个模块都提供了一系列相关的控件。主要功能模块包括但不限于：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot;js_darkmode__17 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__18&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__19&quot;&gt;基础控件&lt;/strong&gt;：如 Button、Label、TextBox 等，这些控件在 HandyControl 中得到了样式上的重写和功能上的增强。&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__20&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__21&quot;&gt;布局控件&lt;/strong&gt;：如 Grid、StackPanel、UniformSpacingPanel 等，用于构建复杂的界面布局。&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__22&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__23&quot;&gt;数据展示控件&lt;/strong&gt;：如 DataGrid、ListView、TreeView 等，用于展示和编辑数据。&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__24&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__25&quot;&gt;交互控件&lt;/strong&gt;：如 Dialog、MessageBox、NotifyIcon 等，用于与用户进行交互。&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__26&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__27&quot;&gt;动画与效果控件&lt;/strong&gt;：如 AnimationPath、GooeyEffect、GlowWindow 等，为界面添加动态效果和视觉吸引力。&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__28&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__29&quot;&gt;主题与样式&lt;/strong&gt;：支持主题切换（如暗黑模式），并提供丰富的样式定制选项。&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;border-bottom-color: rgb(89, 89, 89);margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 0, 0);border-left-color: rgb(0, 0, 0);border-right-color: rgb(0, 0, 0);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: flex;flex-direction: unset;float: unset;height: auto;justify-content: unset;line-height: 1.5em;overflow-x: unset;overflow-y: unset;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;text-align: left;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__30&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 22px;color: #595959;border-bottom-color: #595959;line-height: 1.5em;letter-spacing: 0em;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: #000000;border-left-color: #000000;border-right-color: #000000;border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: block;font-weight: bold;flex-direction: unset;float: unset;height: auto;justify-content: unset;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;overflow-x: unset;overflow-y: unset;text-align: left;text-indent: 0em;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__31&quot;&gt;功能特点&lt;/span&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;/h2&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot;js_darkmode__32 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__33&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__34&quot;&gt;丰富的控件集&lt;/strong&gt;：提供 80 余款自定义控件，满足各种界面需求。&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__35&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__36&quot;&gt;高度可定制&lt;/strong&gt;：控件样式和属性均可通过 XAML 或代码进行高度定制。&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__37&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__38&quot;&gt;主题支持&lt;/strong&gt;：支持多种主题切换，包括暗黑模式，提升用户体验。&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__39&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__40&quot;&gt;性能优化&lt;/strong&gt;：控件设计注重性能，确保在复杂界面中也能流畅运行。&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__41&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__42&quot;&gt;易用性&lt;/strong&gt;：提供详细的文档和示例，降低学习成本，提高开发效率。&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;border-bottom-color: rgb(89, 89, 89);margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 0, 0);border-left-color: rgb(0, 0, 0);border-right-color: rgb(0, 0, 0);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: flex;flex-direction: unset;float: unset;height: auto;justify-content: unset;line-height: 1.5em;overflow-x: unset;overflow-y: unset;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;text-align: left;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__43&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 22px;color: #595959;border-bottom-color: #595959;line-height: 1.5em;letter-spacing: 0em;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: #000000;border-left-color: #000000;border-right-color: #000000;border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: block;font-weight: bold;flex-direction: unset;float: unset;height: auto;justify-content: unset;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;overflow-x: unset;overflow-y: unset;text-align: left;text-indent: 0em;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__44&quot;&gt;快速使用方式&lt;/span&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;color: rgb(89, 89, 89);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__45&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__46&quot;&gt;一、引用 HandyControl&lt;/strong&gt;：&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot;js_darkmode__47 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__48&quot;&gt;通过 NuGet 包管理器搜索并安装&amp;nbsp;&lt;code style=&quot;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: &amp;#39;Operator Mono&amp;#39;, Consolas, Monaco, Menlo, monospace;word-break: break-all;&quot; class=&quot;js_darkmode__49&quot;&gt;HandyControl&lt;/code&gt;。&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__50&quot;&gt;或者在项目文件中直接添加对 HandyControl 的引用。&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;color: rgb(89, 89, 89);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__51&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__52&quot;&gt;二、配置 App.xaml&lt;/strong&gt;： 在&amp;nbsp;&lt;code style=&quot;color: rgb(71, 193, 168);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: &amp;#39;Operator Mono&amp;#39;, Consolas, Monaco, Menlo, monospace;word-break: break-all;&quot; class=&quot;js_darkmode__53&quot;&gt;App.xaml&lt;/code&gt;&amp;nbsp;文件中添加 HandyControl 的资源字典，以便在整个应用程序中使用其样式和控件。&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;border-radius: 5px;box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;text-align: left;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__54&quot;&gt;&lt;span data-cacheurl=&quot;&quot; data-remoteid=&quot;&quot; style=&quot;display: block; background: url(&amp;quot;https://mmbiz.qpic.cn/mmbiz_svg/HhRfwkaJkMvW9doZ5yMsbn24UIVFpFEdVexl3zdVTzgI8eVCnNHTAKW8UKiaD7bDykOBrgwMXmQhIZ8icfmD3r2eHicJibt9boibQ/640?wx_fmt=svg&amp;amp;from=appmsg&amp;amp;tp=webp&amp;amp;wxfrom=15&amp;amp;wx_lazy=1&amp;quot;) 10px 10px / 40px no-repeat #282C34; height: 30px; width: 100%; margin-bottom: -7px; border-radius: 5px;&quot; data-lazy-bgimg=&quot;https://mmbiz.qpic.cn/mmbiz_svg/HhRfwkaJkMvW9doZ5yMsbn24UIVFpFEdVexl3zdVTzgI8eVCnNHTAKW8UKiaD7bDykOBrgwMXmQhIZ8icfmD3r2eHicJibt9boibQ/640?wx_fmt=svg&amp;amp;from=appmsg&quot; class=&quot;js_darkmode__bg__0 js_darkmode__55&quot; data-fail=&quot;0&quot;&gt;&lt;/span&gt;&lt;code style=&quot;overflow-x: auto;padding: 16px;color: #abb2bf;padding-top: 15px;background: #282c34;border-radius: 5px;display: -webkit-box;font-family: Consolas, Monaco, Menlo, monospace;font-size: 12px;&quot; class=&quot;js_darkmode__56&quot;&gt;&lt;span style=&quot;line-height: 26px;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #e06c75;line-height: 26px;&quot;&gt;Application.Resources&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;line-height: 26px;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #e06c75;line-height: 26px;&quot;&gt;ResourceDictionary&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;line-height: 26px;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #e06c75;line-height: 26px;&quot;&gt;ResourceDictionary.MergedDictionaries&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;line-height: 26px;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #e06c75;line-height: 26px;&quot;&gt;ResourceDictionary&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #d19a66;line-height: 26px;&quot;&gt;Source&lt;/span&gt;=&lt;span style=&quot;color: #98c379;line-height: 26px;&quot;&gt;&amp;quot;pack://application:,,,/HandyControl;component/Themes/SkinDefault.xaml&amp;quot;&lt;/span&gt;/&amp;gt;&lt;/span&gt;&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;line-height: 26px;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #e06c75;line-height: 26px;&quot;&gt;ResourceDictionary&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #d19a66;line-height: 26px;&quot;&gt;Source&lt;/span&gt;=&lt;span style=&quot;color: #98c379;line-height: 26px;&quot;&gt;&amp;quot;pack://application:,,,/HandyControl;component/Themes/Theme.xaml&amp;quot;&lt;/span&gt;/&amp;gt;&lt;/span&gt;&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;line-height: 26px;&quot;&gt;&amp;lt;/&lt;span style=&quot;color: #e06c75;line-height: 26px;&quot;&gt;ResourceDictionary.MergedDictionaries&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;line-height: 26px;&quot;&gt;&amp;lt;/&lt;span style=&quot;color: #e06c75;line-height: 26px;&quot;&gt;ResourceDictionary&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;line-height: 26px;&quot;&gt;&amp;lt;/&lt;span style=&quot;color: #e06c75;line-height: 26px;&quot;&gt;Application.Resources&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;color: rgb(89, 89, 89);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__57&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__58&quot;&gt;三、添加命名空间&lt;/strong&gt;： 在 XAML 文件中添加 HandyControl 的命名空间，以便使用其控件。&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;border-radius: 5px;box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;text-align: left;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__59&quot;&gt;&lt;span data-cacheurl=&quot;&quot; data-remoteid=&quot;&quot; style=&quot;display: block; background: url(&amp;quot;https://mmbiz.qpic.cn/mmbiz_svg/HhRfwkaJkMvW9doZ5yMsbn24UIVFpFEdVexl3zdVTzgI8eVCnNHTAKW8UKiaD7bDykOBrgwMXmQhIZ8icfmD3r2eHicJibt9boibQ/640?wx_fmt=svg&amp;amp;from=appmsg&amp;amp;tp=webp&amp;amp;wxfrom=15&amp;amp;wx_lazy=1&amp;quot;) 10px 10px / 40px no-repeat #282C34; height: 30px; width: 100%; margin-bottom: -7px; border-radius: 5px;&quot; data-lazy-bgimg=&quot;https://mmbiz.qpic.cn/mmbiz_svg/HhRfwkaJkMvW9doZ5yMsbn24UIVFpFEdVexl3zdVTzgI8eVCnNHTAKW8UKiaD7bDykOBrgwMXmQhIZ8icfmD3r2eHicJibt9boibQ/640?wx_fmt=svg&amp;amp;from=appmsg&quot; class=&quot;js_darkmode__bg__1 js_darkmode__60&quot; data-fail=&quot;0&quot;&gt;&lt;/span&gt;&lt;code style=&quot;overflow-x: auto;padding: 16px;color: #abb2bf;padding-top: 15px;background: #282c34;border-radius: 5px;display: -webkit-box;font-family: Consolas, Monaco, Menlo, monospace;font-size: 12px;&quot; class=&quot;js_darkmode__61&quot;&gt;xmlns:hc=&amp;quot;https://handyorg.github.io/handycontrol&amp;quot;&lt;br/&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;color: rgb(89, 89, 89);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__62&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__63&quot;&gt;四、开始编码&lt;/strong&gt;： 使用 HandyControl 提供的控件和样式开始构建你的 WPF 应用程序。&lt;/p&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;border-bottom-color: rgb(89, 89, 89);margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 0, 0);border-left-color: rgb(0, 0, 0);border-right-color: rgb(0, 0, 0);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: flex;flex-direction: unset;float: unset;height: auto;justify-content: unset;line-height: 1.5em;overflow-x: unset;overflow-y: unset;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;text-align: left;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__64&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 22px;color: #595959;border-bottom-color: #595959;line-height: 1.5em;letter-spacing: 0em;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: #000000;border-left-color: #000000;border-right-color: #000000;border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: block;font-weight: bold;flex-direction: unset;float: unset;height: auto;justify-content: unset;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;overflow-x: unset;overflow-y: unset;text-align: left;text-indent: 0em;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__65&quot;&gt;功能演示&lt;/span&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img data-src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/zvabLLprOiajsk30rRR8WoK0hLTRGlWVRCzovKjG1lB6xmNPocIoso8uA1cEJeHLfBrLj37pPnqdvMTaNVZV0Zw/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=2&quot; class=&quot;rich_pages wxw-img js_darkmode__66&quot; data-ratio=&quot;0.6323851203501094&quot; data-type=&quot;png&quot; data-w=&quot;457&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 457px !important;&quot; data-imgfileid=&quot;100002506&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;5&quot; src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/zvabLLprOiajsk30rRR8WoK0hLTRGlWVRCzovKjG1lB6xmNPocIoso8uA1cEJeHLfBrLj37pPnqdvMTaNVZV0Zw/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=2&quot; _width=&quot;457px&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776236018787&quot; data-report-img-idx=&quot;2&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img data-src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/zvabLLprOiajsk30rRR8WoK0hLTRGlWVRlq6k3YsibVHNFfQJkQ8TSORd3hoo3dmSMmQB672FcDRvPUatuicn9wRQ/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=3&quot; class=&quot;rich_pages wxw-img js_darkmode__67&quot; data-ratio=&quot;0.37410071942446044&quot; data-type=&quot;png&quot; data-w=&quot;834&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 657px !important;&quot; data-imgfileid=&quot;100002507&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;6&quot; src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/zvabLLprOiajsk30rRR8WoK0hLTRGlWVRlq6k3YsibVHNFfQJkQ8TSORd3hoo3dmSMmQB672FcDRvPUatuicn9wRQ/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=3&quot; _width=&quot;677px&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776236019014&quot; data-report-img-idx=&quot;3&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;color: rgb(89, 89, 89);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__68&quot;&gt;&lt;img data-src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/zvabLLprOiajsk30rRR8WoK0hLTRGlWVRljqeOPwqunZicPRCrk2l4dKzhia6RYrTh4BdTQuVnPQmv00gPibvkzp5w/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=4&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.08043478260869565&quot; data-type=&quot;png&quot; data-w=&quot;460&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; height: auto !important; visibility: visible !important; width: 460px !important;&quot; data-imgfileid=&quot;100002503&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;&quot; data-index=&quot;7&quot; src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/zvabLLprOiajsk30rRR8WoK0hLTRGlWVRljqeOPwqunZicPRCrk2l4dKzhia6RYrTh4BdTQuVnPQmv00gPibvkzp5w/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=4&quot; _width=&quot;460px&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776236019247&quot; data-report-img-idx=&quot;4&quot; data-fail=&quot;0&quot;/&gt;&lt;img data-src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/zvabLLprOiajsk30rRR8WoK0hLTRGlWVRkuSshVEia2LA5vV7d8KfNN2gkteTPIrumDpoF2LyOY8dIdCWHD28hgg/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=5&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.4920828258221681&quot; data-type=&quot;png&quot; data-w=&quot;821&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; height: auto !important; visibility: visible !important; width: 657px !important;&quot; data-imgfileid=&quot;100002504&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;&quot; data-index=&quot;8&quot; src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/zvabLLprOiajsk30rRR8WoK0hLTRGlWVRkuSshVEia2LA5vV7d8KfNN2gkteTPIrumDpoF2LyOY8dIdCWHD28hgg/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=5&quot; _width=&quot;677px&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776236019248&quot; data-report-img-idx=&quot;5&quot; data-fail=&quot;0&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img data-src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/zvabLLprOiajsk30rRR8WoK0hLTRGlWVR676ibXu82ZEWQEiaWnuQj04E18CtsE7G80Zz7aKR1hDGAiaSJqXSGxFqQ/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=6&quot; class=&quot;rich_pages wxw-img js_darkmode__69&quot; data-ratio=&quot;0.5141739980449658&quot; data-type=&quot;png&quot; data-w=&quot;1023&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 657px !important;&quot; data-imgfileid=&quot;100002513&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;9&quot; src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/zvabLLprOiajsk30rRR8WoK0hLTRGlWVR676ibXu82ZEWQEiaWnuQj04E18CtsE7G80Zz7aKR1hDGAiaSJqXSGxFqQ/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=6&quot; _width=&quot;677px&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776236019569&quot; data-report-img-idx=&quot;6&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;color: rgb(89, 89, 89);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__70&quot;&gt;&lt;img data-src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/zvabLLprOiajsk30rRR8WoK0hLTRGlWVRxKfrYrzklkH0ryWqgptic8UtJbx9BrEuvB8Er7ffutInocicIic2N5WVQ/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=7&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.6881496881496881&quot; data-type=&quot;png&quot; data-w=&quot;962&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; height: auto !important; visibility: visible !important; width: 657px !important;&quot; data-imgfileid=&quot;100002511&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;&quot; data-index=&quot;10&quot; src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/zvabLLprOiajsk30rRR8WoK0hLTRGlWVRxKfrYrzklkH0ryWqgptic8UtJbx9BrEuvB8Er7ffutInocicIic2N5WVQ/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=7&quot; _width=&quot;677px&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776236020033&quot; data-report-img-idx=&quot;7&quot; data-fail=&quot;0&quot;/&gt;&lt;img data-src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/zvabLLprOiajsk30rRR8WoK0hLTRGlWVR4LvoCQUdqSgkWofuuiaAcRibFn3jVA3pJhTY2kNyyaH3ear76kwHvo7w/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=8&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.6441947565543071&quot; data-type=&quot;png&quot; data-w=&quot;1068&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; height: auto !important; visibility: visible !important; width: 657px !important;&quot; data-imgfileid=&quot;100002512&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;&quot; data-index=&quot;11&quot; src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/zvabLLprOiajsk30rRR8WoK0hLTRGlWVR4LvoCQUdqSgkWofuuiaAcRibFn3jVA3pJhTY2kNyyaH3ear76kwHvo7w/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=8&quot; _width=&quot;677px&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776236020754&quot; data-report-img-idx=&quot;8&quot; data-fail=&quot;0&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img data-src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/zvabLLprOiajsk30rRR8WoK0hLTRGlWVRzjRjNRHSk7UVu5HzS2ibKfq5wutoBdPla3eOBCDBGNCEwxEajbyETqQ/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=9&quot; class=&quot;rich_pages wxw-img js_darkmode__71&quot; data-ratio=&quot;0.8090379008746356&quot; data-type=&quot;png&quot; data-w=&quot;686&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 657px !important;&quot; data-imgfileid=&quot;100002510&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;12&quot; src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/zvabLLprOiajsk30rRR8WoK0hLTRGlWVRzjRjNRHSk7UVu5HzS2ibKfq5wutoBdPla3eOBCDBGNCEwxEajbyETqQ/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=9&quot; _width=&quot;677px&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776236021173&quot; data-report-img-idx=&quot;9&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img data-src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/zvabLLprOiajsk30rRR8WoK0hLTRGlWVRV8Tht9mSlEmeYzVHSskBrYdtuUP1NFOjTxCU0RUrKLXh996uAo21LA/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=10&quot; class=&quot;rich_pages wxw-img js_darkmode__72&quot; data-ratio=&quot;0.21548117154811716&quot; data-type=&quot;png&quot; data-w=&quot;478&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 478px !important;&quot; data-imgfileid=&quot;100002509&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;13&quot; src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/zvabLLprOiajsk30rRR8WoK0hLTRGlWVRV8Tht9mSlEmeYzVHSskBrYdtuUP1NFOjTxCU0RUrKLXh996uAo21LA/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=10&quot; _width=&quot;478px&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776236022194&quot; data-report-img-idx=&quot;10&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;/p&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;border-bottom-color: rgb(89, 89, 89);margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 0, 0);border-left-color: rgb(0, 0, 0);border-right-color: rgb(0, 0, 0);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: flex;flex-direction: unset;float: unset;height: auto;justify-content: unset;line-height: 1.5em;overflow-x: unset;overflow-y: unset;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;text-align: left;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__73&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 22px;color: #595959;border-bottom-color: #595959;line-height: 1.5em;letter-spacing: 0em;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: #000000;border-left-color: #000000;border-right-color: #000000;border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: block;font-weight: bold;flex-direction: unset;float: unset;height: auto;justify-content: unset;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;overflow-x: unset;overflow-y: unset;text-align: left;text-indent: 0em;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__74&quot;&gt;开源地址&lt;/span&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;color: rgb(89, 89, 89);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__75&quot;&gt;&lt;span class=&quot;wx_text_underline&quot;&gt;https://gitee.com/handyorg/HandyControl&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Wed, 15 Apr 2026 14:54:14 +0800</pubDate></item><item><title>一个基于 .NET Core 开发、完善的医学影像轻量级PACS系统</title><link>https://www.codepub.top/post/261.html</link><description>&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot; border-bottom-color: rgb(89, 89, 89);margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 0, 0);border-left-color: rgb(0, 0, 0);border-right-color: rgb(0, 0, 0);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: flex;flex-direction: unset;float: unset;height: auto;justify-content: unset;line-height: 1.5em;overflow-x: unset;overflow-y: unset;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px; text-align: left;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset; &quot; class=&quot;js_darkmode__7 js_darkmode__text__6&quot;&gt;&lt;span style=&quot; font-size: 22px;color: #595959;border-bottom-color: #595959;line-height: 1.5em;letter-spacing: 0em;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: #000000;border-left-color: #000000;border-right-color: #000000;border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: block;font-weight: bold;flex-direction: unset;float: unset;height: auto;justify-content: unset;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;overflow-x: unset;overflow-y: unset; text-align: left;text-indent: 0em;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset; &quot; class=&quot;js_darkmode__8 js_darkmode__text__7&quot;&gt;&lt;span class=&quot;js_darkmode__text__8&quot;&gt;项目概述&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;color: rgb(89, 89, 89);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__9 js_darkmode__text__9&quot;&gt;&lt;span class=&quot;js_darkmode__text__10&quot;&gt;DicomSCP 是一个基于.NET Core开发的、中文开源社区中最完善且集成度最高的医学影像轻量级PACS（Picture Archiving and Communication System）系统。它提供了DICOM存储、工作列表、查询检索、打印、WADO/DicomWeb等一系列服务，并集成了功能强大的DICOM桌面和Web查看器。该项目旨在为中文医学影像领域提供一个免费的轻量级PACS解决方案。&lt;/span&gt;&lt;/p&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot; border-bottom-color: rgb(89, 89, 89);margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 0, 0);border-left-color: rgb(0, 0, 0);border-right-color: rgb(0, 0, 0);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: flex;flex-direction: unset;float: unset;height: auto;justify-content: unset;line-height: 1.5em;overflow-x: unset;overflow-y: unset;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px; text-align: left;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset; &quot; class=&quot;js_darkmode__10 js_darkmode__text__11&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;span style=&quot; font-size: 22px;color: #595959;border-bottom-color: #595959;line-height: 1.5em;letter-spacing: 0em;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: #000000;border-left-color: #000000;border-right-color: #000000;border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: block;font-weight: bold;flex-direction: unset;float: unset;height: auto;justify-content: unset;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;overflow-x: unset;overflow-y: unset; text-align: left;text-indent: 0em;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset; &quot; class=&quot;js_darkmode__11 js_darkmode__text__12&quot;&gt;&lt;span class=&quot;js_darkmode__text__13&quot;&gt;应用场景&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;color: rgb(89, 89, 89);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__12 js_darkmode__text__14&quot;&gt;&lt;span class=&quot;js_darkmode__text__15&quot;&gt;DicomSCP 适用于多种医学影像管理场景，包括但不限于：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot;js_darkmode__13 js_darkmode__text__16 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__14 js_darkmode__text__18&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__15 js_darkmode__text__19&quot;&gt;&lt;span class=&quot;js_darkmode__text__20&quot;&gt;医院影像科室&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__21&quot;&gt;：用于存储、管理和检索患者的医学影像数据，如X光片、CT、MRI等。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__16 js_darkmode__text__23&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__17 js_darkmode__text__24&quot;&gt;&lt;span class=&quot;js_darkmode__text__25&quot;&gt;远程医疗服务&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__26&quot;&gt;：支持远程医学影像的传输和查看，便于远程诊断和治疗。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__18 js_darkmode__text__28&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__19 js_darkmode__text__29&quot;&gt;&lt;span class=&quot;js_darkmode__text__30&quot;&gt;医共体和医保&lt;span class=&quot;&quot;&gt;影像云&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__31&quot;&gt;：作为紧密型医共体和医保影像云的一部分，实现影像数据的共享和协同工作。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__20 js_darkmode__text__33&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__21 js_darkmode__text__34&quot;&gt;&lt;span class=&quot;js_darkmode__text__35&quot;&gt;医学影像教学和研究&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__36&quot;&gt;：提供丰富的影像数据查询和检索功能，支持医学影像的教学和研究工作。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot; border-bottom-color: rgb(89, 89, 89);margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 0, 0);border-left-color: rgb(0, 0, 0);border-right-color: rgb(0, 0, 0);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: flex;flex-direction: unset;float: unset;height: auto;justify-content: unset;line-height: 1.5em;overflow-x: unset;overflow-y: unset;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px; text-align: left;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset; &quot; class=&quot;js_darkmode__22 js_darkmode__text__37&quot;&gt;&lt;span style=&quot; font-size: 22px;color: #595959;border-bottom-color: #595959;line-height: 1.5em;letter-spacing: 0em;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: #000000;border-left-color: #000000;border-right-color: #000000;border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: block;font-weight: bold;flex-direction: unset;float: unset;height: auto;justify-content: unset;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;overflow-x: unset;overflow-y: unset; text-align: left;text-indent: 0em;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset; &quot; class=&quot;js_darkmode__23 js_darkmode__text__38&quot;&gt;&lt;span class=&quot;js_darkmode__text__39&quot;&gt;功能模块&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: block;&quot; class=&quot;js_darkmode__text__40&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 20px;color: #595959;line-height: 1.5em;letter-spacing: 0em;text-align: left;font-weight: bold;display: block;&quot; class=&quot;js_darkmode__24 js_darkmode__text__41&quot;&gt;&lt;span class=&quot;js_darkmode__text__42&quot;&gt;存储服务 (C-STORE SCP)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot;js_darkmode__25 js_darkmode__text__43 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__26 js_darkmode__text__45&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__27 js_darkmode__text__46&quot;&gt;&lt;span class=&quot;js_darkmode__text__47&quot;&gt;功能描述&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__48&quot;&gt;：接收并存储DICOM图像文件。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__28 js_darkmode__text__50&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__29 js_darkmode__text__51&quot;&gt;&lt;span class=&quot;js_darkmode__text__52&quot;&gt;特点&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__53&quot;&gt;：&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot; class=&quot;js_darkmode__30 js_darkmode__text__54 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__31 js_darkmode__text__56&quot;&gt;&lt;span class=&quot;js_darkmode__text__57&quot;&gt;按照4个级别的标签入库和归档。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__32 js_darkmode__text__59&quot;&gt;&lt;span class=&quot;js_darkmode__text__60&quot;&gt;自动组织存储目录结构。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__33 js_darkmode__text__62&quot;&gt;&lt;span class=&quot;js_darkmode__text__63&quot;&gt;支持多种压缩格式（JPEG、JPEG2000、JPEG-LS、RLE等）。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: block;&quot; class=&quot;js_darkmode__text__64&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 20px;color: #595959;line-height: 1.5em;letter-spacing: 0em;text-align: left;font-weight: bold;display: block;&quot; class=&quot;js_darkmode__34 js_darkmode__text__65&quot;&gt;&lt;span class=&quot;js_darkmode__text__66&quot;&gt;工作列表服务 (Worklist SCP)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot;js_darkmode__35 js_darkmode__text__67 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__36 js_darkmode__text__69&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__37 js_darkmode__text__70&quot;&gt;&lt;span class=&quot;js_darkmode__text__71&quot;&gt;功能描述&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__72&quot;&gt;：提供标准的DICOM Modality Worklist服务。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__38 js_darkmode__text__74&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__39 js_darkmode__text__75&quot;&gt;&lt;span class=&quot;js_darkmode__text__76&quot;&gt;特点&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__77&quot;&gt;：&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot; class=&quot;js_darkmode__40 js_darkmode__text__78 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__41 js_darkmode__text__80&quot;&gt;&lt;span class=&quot;js_darkmode__text__81&quot;&gt;支持多种查询条件（患者ID、检查号、日期等）。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__42 js_darkmode__text__83&quot;&gt;&lt;span class=&quot;js_darkmode__text__84&quot;&gt;支持请求字符集协商，自动中英文转换。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: block;&quot; class=&quot;js_darkmode__text__85&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 20px;color: #595959;line-height: 1.5em;letter-spacing: 0em;text-align: left;font-weight: bold;display: block;&quot; class=&quot;js_darkmode__43 js_darkmode__text__86&quot;&gt;&lt;span class=&quot;js_darkmode__text__87&quot;&gt;查询检索服务 (QR SCP)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot;js_darkmode__44 js_darkmode__text__88 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__45 js_darkmode__text__90&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__46 js_darkmode__text__91&quot;&gt;&lt;span class=&quot;js_darkmode__text__92&quot;&gt;功能描述&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__93&quot;&gt;：提供C-FIND、C-MOVE、C-GET服务，支持影像数据的查询和检索。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__47 js_darkmode__text__95&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__48 js_darkmode__text__96&quot;&gt;&lt;span class=&quot;js_darkmode__text__97&quot;&gt;特点&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__98&quot;&gt;：&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot; class=&quot;js_darkmode__49 js_darkmode__text__99 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__50 js_darkmode__text__101&quot;&gt;&lt;span class=&quot;js_darkmode__text__102&quot;&gt;可配置多个目标节点。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__51 js_darkmode__text__104&quot;&gt;&lt;span class=&quot;js_darkmode__text__105&quot;&gt;支持多种查询级别（Study/Series/Image）。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__52 js_darkmode__text__107&quot;&gt;&lt;span class=&quot;js_darkmode__text__108&quot;&gt;支持传输语法实时转码。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: block;&quot; class=&quot;js_darkmode__text__109&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 20px;color: #595959;line-height: 1.5em;letter-spacing: 0em;text-align: left;font-weight: bold;display: block;&quot; class=&quot;js_darkmode__53 js_darkmode__text__110&quot;&gt;&lt;span class=&quot;js_darkmode__text__111&quot;&gt;打印服务 (Print SCP)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot;js_darkmode__54 js_darkmode__text__112 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__55 js_darkmode__text__114&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__56 js_darkmode__text__115&quot;&gt;&lt;span class=&quot;js_darkmode__text__116&quot;&gt;功能描述&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__117&quot;&gt;：管理打印任务队列，跟踪打印任务状态。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__57 js_darkmode__text__119&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__58 js_darkmode__text__120&quot;&gt;&lt;span class=&quot;js_darkmode__text__121&quot;&gt;特点&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__122&quot;&gt;：&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot; class=&quot;js_darkmode__59 js_darkmode__text__123 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__60 js_darkmode__text__125&quot;&gt;&lt;span class=&quot;js_darkmode__text__126&quot;&gt;打印任务队列管理。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__61 js_darkmode__text__128&quot;&gt;&lt;span class=&quot;js_darkmode__text__129&quot;&gt;打印任务状态跟踪。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__62 js_darkmode__text__131&quot;&gt;&lt;span class=&quot;js_darkmode__text__132&quot;&gt;归档打印的原始文件和标签。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: block;&quot; class=&quot;js_darkmode__text__133&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 20px;color: #595959;line-height: 1.5em;letter-spacing: 0em;text-align: left;font-weight: bold;display: block;&quot; class=&quot;js_darkmode__63 js_darkmode__text__134&quot;&gt;&lt;span class=&quot;js_darkmode__text__135&quot;&gt;WADO/DicomWeb服务&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot;js_darkmode__64 js_darkmode__text__136 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__65 js_darkmode__text__138&quot;&gt;&lt;p style=&quot;color: rgb(89, 89, 89);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__66 js_darkmode__text__139&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__67 js_darkmode__text__140&quot;&gt;&lt;span class=&quot;js_darkmode__text__141&quot;&gt;WADOURI服务&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__142&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot; class=&quot;js_darkmode__68 js_darkmode__text__143 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__69 js_darkmode__text__145&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__70 js_darkmode__text__146&quot;&gt;&lt;span class=&quot;js_darkmode__text__147&quot;&gt;功能描述&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__148&quot;&gt;：通过Web访问DICOM对象。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__71 js_darkmode__text__150&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__72 js_darkmode__text__151&quot;&gt;&lt;span class=&quot;js_darkmode__text__152&quot;&gt;特点&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__153&quot;&gt;：支持多种返回内容类型和传输语法，支持匿名化处理。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__73 js_darkmode__text__155&quot;&gt;&lt;p style=&quot;color: rgb(89, 89, 89);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__74 js_darkmode__text__156&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__75 js_darkmode__text__157&quot;&gt;&lt;span class=&quot;js_darkmode__text__158&quot;&gt;WADO-RS服务&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__159&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot; class=&quot;js_darkmode__76 js_darkmode__text__160 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__77 js_darkmode__text__162&quot;&gt;&lt;span class=&quot;js_darkmode__text__163&quot;&gt;支持实例检索、元数据检索、帧检索。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__78 js_darkmode__text__165&quot;&gt;&lt;span class=&quot;js_darkmode__text__166&quot;&gt;支持原始DICOM格式检索和传输语法转换。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__79 js_darkmode__text__168&quot;&gt;&lt;span class=&quot;js_darkmode__text__169&quot;&gt;支持缩略图生成和自定义尺寸。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__81 js_darkmode__text__172&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__82 js_darkmode__text__173&quot;&gt;&lt;span class=&quot;js_darkmode__text__174&quot;&gt;功能描述&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__175&quot;&gt;：提供RESTful风格的DICOM对象访问服务。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__83 js_darkmode__text__177&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__84 js_darkmode__text__178&quot;&gt;&lt;span class=&quot;js_darkmode__text__179&quot;&gt;特点&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__180&quot;&gt;：&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__85 js_darkmode__text__182&quot;&gt;&lt;p style=&quot;color: rgb(89, 89, 89);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__86 js_darkmode__text__183&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__87 js_darkmode__text__184&quot;&gt;&lt;span class=&quot;js_darkmode__text__185&quot;&gt;QIDO-RS服务&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__186&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot; class=&quot;js_darkmode__88 js_darkmode__text__187 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__89 js_darkmode__text__189&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__90 js_darkmode__text__190&quot;&gt;&lt;span class=&quot;js_darkmode__text__191&quot;&gt;功能描述&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__192&quot;&gt;：基于ID的DICOM对象查询服务。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__91 js_darkmode__text__194&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__92 js_darkmode__text__195&quot;&gt;&lt;span class=&quot;js_darkmode__text__196&quot;&gt;特点&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__197&quot;&gt;：支持研究级、序列级、实例级查询，支持多种查询参数和分页功能。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot; border-bottom-color: rgb(89, 89, 89);margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 0, 0);border-left-color: rgb(0, 0, 0);border-right-color: rgb(0, 0, 0);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: flex;flex-direction: unset;float: unset;height: auto;justify-content: unset;line-height: 1.5em;overflow-x: unset;overflow-y: unset;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px; text-align: left;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset; &quot; class=&quot;js_darkmode__93 js_darkmode__text__198&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;span style=&quot; font-size: 22px;color: #595959;border-bottom-color: #595959;line-height: 1.5em;letter-spacing: 0em;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: #000000;border-left-color: #000000;border-right-color: #000000;border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: block;font-weight: bold;flex-direction: unset;float: unset;height: auto;justify-content: unset;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;overflow-x: unset;overflow-y: unset; text-align: left;text-indent: 0em;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset; &quot; class=&quot;js_darkmode__94 js_darkmode__text__199&quot;&gt;&lt;span class=&quot;js_darkmode__text__200&quot;&gt;功能特点&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;/h2&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot;js_darkmode__95 js_darkmode__text__201 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__96 js_darkmode__text__203&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__97 js_darkmode__text__204&quot;&gt;&lt;span class=&quot;js_darkmode__text__205&quot;&gt;轻量级&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__206&quot;&gt;：基于.NET Core开发，具有跨平台、高性能的特点。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__98 js_darkmode__text__208&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__99 js_darkmode__text__209&quot;&gt;&lt;span class=&quot;js_darkmode__text__210&quot;&gt;集成度高&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__211&quot;&gt;：集成了存储、工作列表、查询检索、打印、WADO/DicomWeb等多种服务。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__100 js_darkmode__text__213&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__101 js_darkmode__text__214&quot;&gt;&lt;span class=&quot;js_darkmode__text__215&quot;&gt;易用性&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__216&quot;&gt;：提供了DICOM桌面和Web查看器，方便用户查看和管理影像数据。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__102 js_darkmode__text__218&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__103 js_darkmode__text__219&quot;&gt;&lt;span class=&quot;js_darkmode__text__220&quot;&gt;可扩展性&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__221&quot;&gt;：支持通过配置文件进行个性化配置，满足不同用户的需求。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot; border-bottom-color: rgb(89, 89, 89);margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 0, 0);border-left-color: rgb(0, 0, 0);border-right-color: rgb(0, 0, 0);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: flex;flex-direction: unset;float: unset;height: auto;justify-content: unset;line-height: 1.5em;overflow-x: unset;overflow-y: unset;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px; text-align: left;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset; &quot; class=&quot;js_darkmode__104 js_darkmode__text__222&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;span style=&quot; font-size: 22px;color: #595959;border-bottom-color: #595959;line-height: 1.5em;letter-spacing: 0em;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: #000000;border-left-color: #000000;border-right-color: #000000;border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: block;font-weight: bold;flex-direction: unset;float: unset;height: auto;justify-content: unset;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;overflow-x: unset;overflow-y: unset; text-align: left;text-indent: 0em;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset; &quot; class=&quot;js_darkmode__105 js_darkmode__text__223&quot;&gt;&lt;span class=&quot;js_darkmode__text__224&quot;&gt;功能演示&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img class=&quot;rich_pages wxw-img js_darkmode__106&quot; data-aistatus=&quot;1&quot; data-imgfileid=&quot;100002959&quot; data-src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/Z0lg7OrgCd8DIibEhjS2X0Xomdrwr4GYHQyMn0YSxFmRxjvukC6lHcwvSTW8OicB6ice0UicvRctQertyfib4jzxicliagk2gzRG8C2rFUqMa9Nblk/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=1&quot; data-type=&quot;png&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 500px !important;&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;0&quot; data-ratio=&quot;0.4965986394557823&quot; data-w=&quot;1911&quot; src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/Z0lg7OrgCd8DIibEhjS2X0Xomdrwr4GYHQyMn0YSxFmRxjvukC6lHcwvSTW8OicB6ice0UicvRctQertyfib4jzxicliagk2gzRG8C2rFUqMa9Nblk/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=1&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776234809440&quot; data-report-img-idx=&quot;1&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img class=&quot;rich_pages wxw-img js_darkmode__107&quot; data-aistatus=&quot;1&quot; data-imgfileid=&quot;100002961&quot; data-src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/Z0lg7OrgCdicZQGlZYLqr3ia36jLv0US2yz2PSwaakX2kF3pYPBAcr0wFicICYhYrJBpE9JDTqS7iazRKW4hAdoEHl38kIqrMZUXGOhgkn4J7Lk/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=2&quot; data-type=&quot;png&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 500px !important;&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;1&quot; data-ratio=&quot;0.4955613577023499&quot; data-w=&quot;1915&quot; src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/Z0lg7OrgCdicZQGlZYLqr3ia36jLv0US2yz2PSwaakX2kF3pYPBAcr0wFicICYhYrJBpE9JDTqS7iazRKW4hAdoEHl38kIqrMZUXGOhgkn4J7Lk/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=2&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776234809599&quot; data-report-img-idx=&quot;2&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img class=&quot;rich_pages wxw-img js_darkmode__108&quot; data-aistatus=&quot;1&quot; data-imgfileid=&quot;100002960&quot; data-src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/Z0lg7OrgCd9XkpGAwmgenyqaUQIjBdwU3Sb5iciaXO2d2O7ib397c4XIPsiba1w1CjR8zPefbOlT5AVM43Xy7wZcAt1hZ3KougBRiagPvpVwPVibo/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=3&quot; data-type=&quot;png&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 500px !important;&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;2&quot; data-ratio=&quot;0.5015760441292356&quot; data-w=&quot;2538&quot; src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/Z0lg7OrgCd9XkpGAwmgenyqaUQIjBdwU3Sb5iciaXO2d2O7ib397c4XIPsiba1w1CjR8zPefbOlT5AVM43Xy7wZcAt1hZ3KougBRiagPvpVwPVibo/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=3&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776234809719&quot; data-report-img-idx=&quot;3&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img class=&quot;rich_pages wxw-img js_darkmode__109&quot; data-aistatus=&quot;1&quot; data-imgfileid=&quot;100002957&quot; data-src=&quot;https://mmbiz.qpic.cn/mmbiz_png/Z0lg7OrgCd8PjbouUo3czbRzcOB3a7YoZOBLibQiaiaJvzQtEvk566iak5yUL9sdb9oZ0Jybon5By49Zb1KGkJicG5KRZZCicIG7ialvLtXqWZoVI4/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=4&quot; data-type=&quot;png&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 500px !important;&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;3&quot; data-ratio=&quot;0.4462421711899791&quot; data-w=&quot;1916&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_png/Z0lg7OrgCd8PjbouUo3czbRzcOB3a7YoZOBLibQiaiaJvzQtEvk566iak5yUL9sdb9oZ0Jybon5By49Zb1KGkJicG5KRZZCicIG7ialvLtXqWZoVI4/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=4&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776234809939&quot; data-report-img-idx=&quot;4&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img class=&quot;rich_pages wxw-img js_darkmode__110&quot; data-aistatus=&quot;1&quot; data-imgfileid=&quot;100002958&quot; data-src=&quot;https://mmbiz.qpic.cn/mmbiz_png/Z0lg7OrgCdibXkicgvTJJ94yia3MIC0UnV1sMKUCwnia86oab1SoMnVibqGPqzN4CPIrVLkBO6rEmia2YtZicbjMuKk4m7wUjMOJn76uN3uSRhKoHY/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=5&quot; data-type=&quot;png&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 381px !important;&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;4&quot; data-ratio=&quot;1.769028871391076&quot; data-w=&quot;381&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_png/Z0lg7OrgCdibXkicgvTJJ94yia3MIC0UnV1sMKUCwnia86oab1SoMnVibqGPqzN4CPIrVLkBO6rEmia2YtZicbjMuKk4m7wUjMOJn76uN3uSRhKoHY/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=5&quot; _width=&quot;381px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776234810069&quot; data-report-img-idx=&quot;5&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img class=&quot;rich_pages wxw-img js_darkmode__111&quot; data-aistatus=&quot;1&quot; data-imgfileid=&quot;100002962&quot; data-src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/Z0lg7OrgCd9ZWrkF7bPEXTcqzlILNGdH1mib0L23yiciarKNTBL83YqlHK4sTMfDWXv7KWdWHicWPsYoickibONzZ0bnGsNrO0iaPThYvjhhMAoOT4/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=6&quot; data-type=&quot;png&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 500px !important;&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;5&quot; data-ratio=&quot;0.49558080808080807&quot; data-w=&quot;1584&quot; src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/Z0lg7OrgCd9ZWrkF7bPEXTcqzlILNGdH1mib0L23yiciarKNTBL83YqlHK4sTMfDWXv7KWdWHicWPsYoickibONzZ0bnGsNrO0iaPThYvjhhMAoOT4/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=6&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776234811159&quot; data-report-img-idx=&quot;6&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img class=&quot;rich_pages wxw-img js_darkmode__112&quot; data-aistatus=&quot;1&quot; data-imgfileid=&quot;100002963&quot; data-src=&quot;https://mmbiz.qpic.cn/mmbiz_jpg/Z0lg7OrgCdicTO8YZdLsibvLtVteF5oGGulF7Wicda6RURRCaVBGsUrRnfaFJiaT0FdMcIK7n0021mibAye2L4A1zc91Jp3OT8SnIID0yicq074CQ/640?wx_fmt=jpeg&amp;amp;from=appmsg#imgIndex=7&quot; data-type=&quot;jpeg&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 500px !important;&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;6&quot; data-ratio=&quot;0.502548020384163&quot; data-w=&quot;2551&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_jpg/Z0lg7OrgCdicTO8YZdLsibvLtVteF5oGGulF7Wicda6RURRCaVBGsUrRnfaFJiaT0FdMcIK7n0021mibAye2L4A1zc91Jp3OT8SnIID0yicq074CQ/640?wx_fmt=jpeg&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=7&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776234811412&quot; data-report-img-idx=&quot;7&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img class=&quot;rich_pages wxw-img js_darkmode__113&quot; data-aistatus=&quot;1&quot; data-imgfileid=&quot;100002964&quot; data-src=&quot;https://mmbiz.qpic.cn/mmbiz_jpg/Z0lg7OrgCd989Kv1zzicgiaM9H0QVNy2l83V3ADg4zgibGHTgib5rbe3oloAIpH3aPV4eibR72ZmAhOJjvXvAlfOSWz0MoGJCNHIibKy74Ds0Ca30/640?wx_fmt=jpeg&amp;amp;from=appmsg#imgIndex=8&quot; data-type=&quot;jpeg&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 500px !important;&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;7&quot; data-ratio=&quot;0.54421768707483&quot; data-w=&quot;1911&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_jpg/Z0lg7OrgCd989Kv1zzicgiaM9H0QVNy2l83V3ADg4zgibGHTgib5rbe3oloAIpH3aPV4eibR72ZmAhOJjvXvAlfOSWz0MoGJCNHIibKy74Ds0Ca30/640?wx_fmt=jpeg&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=8&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776234811609&quot; data-report-img-idx=&quot;8&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img class=&quot;rich_pages wxw-img js_darkmode__114&quot; data-aistatus=&quot;1&quot; data-imgfileid=&quot;100002966&quot; data-src=&quot;https://mmbiz.qpic.cn/mmbiz_jpg/Z0lg7OrgCd8UMLibh92NCL2tAQ7g9EibLlux4bww7alv9LW6mIzyh2s4zTaJicQwp5ch3jbYE7H9qSzU7XZ0qiaVm6pbr486JPiaasd9z6LY7r3g/640?wx_fmt=jpeg&amp;amp;from=appmsg#imgIndex=9&quot; data-type=&quot;jpeg&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 500px !important;&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;8&quot; data-ratio=&quot;0.5033398821218075&quot; data-w=&quot;2545&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_jpg/Z0lg7OrgCd8UMLibh92NCL2tAQ7g9EibLlux4bww7alv9LW6mIzyh2s4zTaJicQwp5ch3jbYE7H9qSzU7XZ0qiaVm6pbr486JPiaasd9z6LY7r3g/640?wx_fmt=jpeg&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=9&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776234811839&quot; data-report-img-idx=&quot;9&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img class=&quot;rich_pages wxw-img js_darkmode__115&quot; data-aistatus=&quot;1&quot; data-imgfileid=&quot;100002965&quot; data-src=&quot;https://mmbiz.qpic.cn/mmbiz_png/Z0lg7OrgCd8yCLjCkYLfWdQ1Oico6zrjiab6mUTWIbMyyPIt87SlPbxh9oibERicPErUkjV2ciaDVBporPbU9ib0HKON22wHO57EIqNJjRnPAWnso/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=10&quot; data-type=&quot;png&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 500px !important;&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;9&quot; data-ratio=&quot;0.7543859649122807&quot; data-w=&quot;1254&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_png/Z0lg7OrgCd8yCLjCkYLfWdQ1Oico6zrjiab6mUTWIbMyyPIt87SlPbxh9oibERicPErUkjV2ciaDVBporPbU9ib0HKON22wHO57EIqNJjRnPAWnso/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=10&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776234812079&quot; data-report-img-idx=&quot;10&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;/p&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot; border-bottom-color: rgb(89, 89, 89);margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 0, 0);border-left-color: rgb(0, 0, 0);border-right-color: rgb(0, 0, 0);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: flex;flex-direction: unset;float: unset;height: auto;justify-content: unset;line-height: 1.5em;overflow-x: unset;overflow-y: unset;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px; text-align: left;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset; &quot; class=&quot;js_darkmode__116 js_darkmode__text__225&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;&lt;/span&gt;&lt;span style=&quot; font-size: 22px;color: #595959;border-bottom-color: #595959;line-height: 1.5em;letter-spacing: 0em;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: #000000;border-left-color: #000000;border-right-color: #000000;border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: block;font-weight: bold;flex-direction: unset;float: unset;height: auto;justify-content: unset;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;overflow-x: unset;overflow-y: unset; text-align: left;text-indent: 0em;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset; &quot; class=&quot;js_darkmode__117 js_darkmode__text__226&quot;&gt;&lt;span class=&quot;js_darkmode__text__227&quot;&gt;源码地址&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;https://gitee.com/fightroad/DicomSCP&lt;/p&gt;</description><pubDate>Wed, 15 Apr 2026 14:50:36 +0800</pubDate></item><item><title>WinForm 做酒店管理系统，这个开源项目有点东西</title><link>https://www.codepub.top/post/260.html</link><description>&lt;section style=&quot;font-size: 15.2px;font-weight: 400;font-family: -apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style: normal;line-height: 28.576px;color: rgb(31, 41, 51);background-color: rgba(0, 0, 0, 0);margin: 0px 0px 17.48px;padding: 0px;border: 0px solid rgb(229, 231, 235);border-radius: 0px;text-decoration: none;text-align: justify;display: block;width: 678px;max-width: 680px;overflow: visible;word-break: normal;overflow-wrap: normal;white-space: normal;&quot; class=&quot;js_darkmode__0 js_darkmode__text__0&quot;&gt;&lt;span class=&quot;js_darkmode__text__1&quot;&gt;一提到酒店管理系统，很多人脑子里浮现的是什么画面？&lt;/span&gt;&lt;/section&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__1 js_darkmode__text__2&quot;&gt;&lt;span style=&quot;font-size: 15.2px;font-weight: 400;font-family: -apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style: normal;line-height: 28.576px;color: #1F2933;background-color: ;border-radius: 0px;text-decoration: none;text-align: justify;max-width: 680px;overflow: visible;word-break: normal;overflow-wrap: normal;&quot; class=&quot;js_darkmode__2 js_darkmode__text__3&quot;&gt;大概是那种十年前的界面——灰扑&lt;/span&gt;&lt;span class=&quot;js_darkmode__text__4&quot;&gt;扑的按钮、密密麻麻的表格、土黄色的主色调，点一下要等三秒，一不小心还容易点错。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__3 js_darkmode__text__5&quot;&gt;&lt;span class=&quot;js_darkmode__text__6&quot;&gt;不是因为做不好，而是没人愿意在&amp;quot;酒店管理系统&amp;quot;这种&amp;quot;配角软件&amp;quot;上投入太多。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__4 js_darkmode__text__7&quot;&gt;&lt;span class=&quot;js_darkmode__text__8&quot;&gt;但今天想给大家看的这个项目，可能会改变你对这类软件的刻板印象。它叫&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;font-size:15.2px;font-weight:700;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(26, 68, 128);background-color:rgba(0, 0, 0, 0);margin:0px;margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:inline;width:auto;max-width:none;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__5 js_darkmode__text__9&quot;&gt;&lt;span class=&quot;js_darkmode__text__10&quot;&gt;TS酒店管理系统&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__11&quot;&gt;——不是 Web，不是跨端框架，就是传统的 .NET 桌面开发。但它把 Ant Design 的设计语言搬到了 WinForm 上，做出了一套现代感十足的酒店管理界面。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;section style=&quot;text-align: center;&quot;&gt;&lt;img data-src=&quot;https://mmbiz.qpic.cn/mmbiz_png/GrHt0WCylYkHuc6kEnPjQlPuBMibgg68cx6Rd1S4bjr0ib1JKLh5FZ4Z8S2mcvJE0Rtf3AfJ3jsibOAia9XlXSXF1RCrEVIqyNyeSMibV7jpeu2M/640?wx_fmt=png&amp;amp;from=appmsg&amp;amp;watermark=1#imgIndex=0&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.6666666666666666&quot; data-s=&quot;300,640&quot; data-type=&quot;png&quot; data-w=&quot;1080&quot; type=&quot;block&quot; data-imgfileid=&quot;100001174&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;null&quot; data-index=&quot;0&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_png/GrHt0WCylYkHuc6kEnPjQlPuBMibgg68cx6Rd1S4bjr0ib1JKLh5FZ4Z8S2mcvJE0Rtf3AfJ3jsibOAia9XlXSXF1RCrEVIqyNyeSMibV7jpeu2M/640?wx_fmt=png&amp;from=appmsg&amp;wxfrom=13&amp;tp=wxpic&amp;watermark=1#imgIndex=0&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; data-sec-load-status=&quot;2&quot; style=&quot;height: auto !important; visibility: visible !important; width: 520px !important;&quot; data-report-img-idx=&quot;0&quot; alt=&quot;图片&quot;/&gt;&lt;/section&gt;&lt;/p&gt;&lt;hr style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:30.4px 135.609px 30.4px 135.594px;margin-top:30.4px;margin-bottom:30.4px;margin-left:135.594px;margin-right:135.609px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px none rgb(31, 41, 51);border-radius:0px;border-left:0px none rgb(31, 41, 51);text-decoration:none;text-align:start;display:block;width:406.797px;max-width:680px;overflow:hidden;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__6&quot;/&gt;&lt;h2 style=&quot;font-size:19.76px;font-weight:700;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:37.1488px;color:rgb(26, 32, 44);background-color:rgba(0, 0, 0, 0);margin:31.616px 0px 15.808px;margin-top:31.616px;margin-bottom:15.808px;margin-left:0px;margin-right:0px;padding:0px 0px 0px 14px;padding-top:0px;padding-bottom:0px;padding-left:14px;padding-right:0px;border-radius:0px 9px 9px 0px;border-left:4px solid rgb(26, 68, 128);text-decoration:none;text-align:start;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__7 js_darkmode__text__12&quot;&gt;&lt;span class=&quot;js_darkmode__text__13&quot;&gt;先说清楚它是干什么的&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__8 js_darkmode__text__14&quot;&gt;&lt;span class=&quot;js_darkmode__text__15&quot;&gt;TS酒店管理系统面向&lt;/span&gt;&lt;strong style=&quot;font-size:15.2px;font-weight:700;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(26, 68, 128);background-color:rgba(0, 0, 0, 0);margin:0px;margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:inline;width:auto;max-width:none;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__9 js_darkmode__text__16&quot;&gt;&lt;span class=&quot;js_darkmode__text__17&quot;&gt;中小型酒店&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__18&quot;&gt;，解决前台日常运营中的核心问题：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__10 js_darkmode__text__19&quot;&gt;&lt;strong style=&quot;font-size:15.2px;font-weight:700;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(26, 68, 128);background-color:rgba(0, 0, 0, 0);margin:0px;margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:inline;width:auto;max-width:none;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__11 js_darkmode__text__20&quot;&gt;&lt;span class=&quot;js_darkmode__text__21&quot;&gt;客房管理&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__22&quot;&gt;：预约、入住、退房、换房、房间状态管理，一整套闭环。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__12 js_darkmode__text__23&quot;&gt;&lt;strong style=&quot;font-size:15.2px;font-weight:700;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(26, 68, 128);background-color:rgba(0, 0, 0, 0);margin:0px;margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:inline;width:auto;max-width:none;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__13 js_darkmode__text__24&quot;&gt;&lt;span class=&quot;js_darkmode__text__25&quot;&gt;客户管理&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__26&quot;&gt;：住客信息登记、查询、添加，回头客一眼认出。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__14 js_darkmode__text__27&quot;&gt;&lt;strong style=&quot;font-size:15.2px;font-weight:700;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(26, 68, 128);background-color:rgba(0, 0, 0, 0);margin:0px;margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:inline;width:auto;max-width:none;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__15 js_darkmode__text__28&quot;&gt;&lt;span class=&quot;js_darkmode__text__29&quot;&gt;商品消费&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__30&quot;&gt;：房间里的 mini bar、电话费、洗衣服务——消费记录同步到账户，离店一次结清。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__16 js_darkmode__text__31&quot;&gt;&lt;span class=&quot;js_darkmode__text__32&quot;&gt;除此之外，系统还提供管理员账户管理、操作日志记录、系统锁屏、多语言和主题切换。不算大而全，但中小酒店的日常运营，够用了。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:30.4px 135.609px 30.4px 135.594px;margin-top:30.4px;margin-bottom:30.4px;margin-left:135.594px;margin-right:135.609px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px none rgb(31, 41, 51);border-radius:0px;border-left:0px none rgb(31, 41, 51);text-decoration:none;text-align:start;display:block;width:406.797px;max-width:680px;overflow:hidden;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__17&quot;/&gt;&lt;h2 style=&quot;font-size:19.76px;font-weight:700;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:37.1488px;color:rgb(26, 32, 44);background-color:rgba(0, 0, 0, 0);margin:31.616px 0px 15.808px;margin-top:31.616px;margin-bottom:15.808px;margin-left:0px;margin-right:0px;padding:0px 0px 0px 14px;padding-top:0px;padding-bottom:0px;padding-left:14px;padding-right:0px;border-radius:0px 9px 9px 0px;border-left:4px solid rgb(26, 68, 128);text-decoration:none;text-align:start;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__18 js_darkmode__text__33&quot;&gt;&lt;span class=&quot;js_darkmode__text__34&quot;&gt;技术选型有点意思&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__19 js_darkmode__text__35&quot;&gt;&lt;span class=&quot;js_darkmode__text__36&quot;&gt;大多数 WinForm 项目给人的印象是&amp;quot;能用就行&amp;quot;，技术栈能老就老。TS酒店管理系统没有这样：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__20 js_darkmode__text__37&quot;&gt;&lt;strong style=&quot;font-size:15.2px;font-weight:700;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(26, 68, 128);background-color:rgba(0, 0, 0, 0);margin:0px;margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:inline;width:auto;max-width:none;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__21 js_darkmode__text__38&quot;&gt;&lt;span class=&quot;js_darkmode__text__39&quot;&gt;后端&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__40&quot;&gt;用 .NET 10 + SQLSugar ORM，&lt;/span&gt;&lt;strong style=&quot;font-size:15.2px;font-weight:700;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(26, 68, 128);background-color:rgba(0, 0, 0, 0);margin:0px;margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:inline;width:auto;max-width:none;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__22 js_darkmode__text__41&quot;&gt;&lt;span class=&quot;js_darkmode__text__42&quot;&gt;前端 UI&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__43&quot;&gt;&amp;nbsp;则采用了&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;font-size:15.2px;font-weight:700;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(26, 68, 128);background-color:rgba(0, 0, 0, 0);margin:0px;margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:inline;width:auto;max-width:none;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__23 js_darkmode__text__44&quot;&gt;&lt;span class=&quot;js_darkmode__text__45&quot;&gt;AntdUI&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__46&quot;&gt;——这是一个将 Ant Design 设计语言迁移到 WinForm 的组件库。所以你在界面上看到的按钮、表格、输入框，跟你在现代 Web 项目里看到的风格是一致的。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__24 js_darkmode__text__47&quot;&gt;&lt;span class=&quot;js_darkmode__text__48&quot;&gt;有意思的是，&lt;span class=&quot;&quot;&gt;AntdUI&lt;/span&gt; 在 WinForm 生态里是一个相对小众的选择。大多数 WinForm 项目会用 DevExpress 或 FineUI，但 AntdUI 的好处是：如果你同时有 Web 项目，设计师给的那套 Ant Design 规范可以直接复用，前端设计师和桌面端设计师用同一套&amp;quot;语言&amp;quot;。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__25 js_darkmode__text__49&quot;&gt;&lt;span class=&quot;js_darkmode__text__50&quot;&gt;项目还支持&lt;/span&gt;&lt;strong style=&quot;font-size:15.2px;font-weight:700;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(26, 68, 128);background-color:rgba(0, 0, 0, 0);margin:0px;margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:inline;width:auto;max-width:none;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__26 js_darkmode__text__51&quot;&gt;&lt;span class=&quot;js_darkmode__text__52&quot;&gt;四种数据库&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__53&quot;&gt;：&lt;span class=&quot;&quot;&gt;MariaDB&lt;/span&gt;、MySQL、PostgreSQL、SQL Server。切换方式是在配置文件里改一行，不需要改代码。这对已经有特定数据库积累的酒店来说很友好——不用为了上一个新系统而迁移整个数据库。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:30.4px 135.609px 30.4px 135.594px;margin-top:30.4px;margin-bottom:30.4px;margin-left:135.594px;margin-right:135.609px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px none rgb(31, 41, 51);border-radius:0px;border-left:0px none rgb(31, 41, 51);text-decoration:none;text-align:start;display:block;width:406.797px;max-width:680px;overflow:hidden;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__27&quot;/&gt;&lt;h2 style=&quot;font-size:19.76px;font-weight:700;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:37.1488px;color:rgb(26, 32, 44);background-color:rgba(0, 0, 0, 0);margin:31.616px 0px 15.808px;margin-top:31.616px;margin-bottom:15.808px;margin-left:0px;margin-right:0px;padding:0px 0px 0px 14px;padding-top:0px;padding-bottom:0px;padding-left:14px;padding-right:0px;border-radius:0px 9px 9px 0px;border-left:4px solid rgb(26, 68, 128);text-decoration:none;text-align:start;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__28 js_darkmode__text__54&quot;&gt;&lt;span class=&quot;js_darkmode__text__55&quot;&gt;跨平台这件事，它认真在做&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__29 js_darkmode__text__56&quot;&gt;&lt;span class=&quot;js_darkmode__text__57&quot;&gt;让我觉得这个项目值得关注的一个原因是：它的作者不只是写了一个 WinForm 版本。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__30 js_darkmode__text__58&quot;&gt;&lt;span class=&quot;js_darkmode__text__59&quot;&gt;同一套业务逻辑，还做了：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 16.72px;margin-top:0px;margin-bottom:16.72px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:start;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__31 js_darkmode__text__60 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;strong style=&quot;font-size:15.2px;font-weight:700;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(26, 68, 128);background-color:rgba(0, 0, 0, 0);margin:0px;margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:start;display:inline;width:auto;max-width:none;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__33 js_darkmode__text__62&quot;&gt;&lt;span class=&quot;js_darkmode__text__63&quot;&gt;Vue3 Web版&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;section class=&quot;js_darkmode__text__64&quot;&gt;&lt;span class=&quot;js_darkmode__text__65&quot;&gt;浏览器直接访问，适合不想装软件的酒店&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong style=&quot;font-size:15.2px;font-weight:700;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(26, 68, 128);background-color:rgba(0, 0, 0, 0);margin:0px;margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:start;display:inline;width:auto;max-width:none;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__35 js_darkmode__text__67&quot;&gt;&lt;span class=&quot;js_darkmode__text__68&quot;&gt;&lt;span class=&quot;&quot;&gt;MAUI&lt;/span&gt; 安卓版&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;section class=&quot;js_darkmode__text__69&quot;&gt;&lt;span class=&quot;js_darkmode__text__70&quot;&gt;前台拿着平板就能办入住&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong style=&quot;font-size:15.2px;font-weight:700;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(26, 68, 128);background-color:rgba(0, 0, 0, 0);margin:0px;margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:start;display:inline;width:auto;max-width:none;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__37 js_darkmode__text__72&quot;&gt;&lt;span class=&quot;js_darkmode__text__73&quot;&gt;Web API 后端&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;section class=&quot;js_darkmode__text__74&quot;&gt;&lt;span class=&quot;js_darkmode__text__75&quot;&gt;独立部署，&lt;span class=&quot;&quot;&gt;数据接口&lt;/span&gt;开放，可以对接其他系统&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__38 js_darkmode__text__76&quot;&gt;&lt;span class=&quot;js_darkmode__text__77&quot;&gt;四个端共用同一套数据库设计。虽然目前各个端的成熟度不同，但这种&amp;quot;一次业务逻辑，多端部署&amp;quot;的思路，是正确的方向。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__39 js_darkmode__text__78&quot;&gt;&lt;span class=&quot;js_darkmode__text__79&quot;&gt;这里要提一个现实情况：&lt;/span&gt;&lt;strong style=&quot;font-size:15.2px;font-weight:700;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(26, 68, 128);background-color:rgba(0, 0, 0, 0);margin:0px;margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:inline;width:auto;max-width:none;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__40 js_darkmode__text__80&quot;&gt;&lt;span class=&quot;js_darkmode__text__81&quot;&gt;WinForm V2 是最后一个版本&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__82&quot;&gt;，后续主推 Vue3 Web 版。所以如果你对 WinForm 技术本身感兴趣，这个版本有学习价值；如果你是酒店想实际使用，建议直接看 Vue3 版。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;section style=&quot;text-align: center;&quot;&gt;&lt;img data-src=&quot;https://mmbiz.qpic.cn/mmbiz_png/GrHt0WCylYnreib7DOPGP1S7rjex998w5SrqJI2IfPDdktCIVFicj9aIp4Q4uA7l2j1HgxbCbmc679Ps8C9TYtA8XEBlUCvg4Fibs27VJ4DhyE/640?wx_fmt=png&amp;amp;from=appmsg&amp;amp;watermark=1#imgIndex=1&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.562962962962963&quot; data-s=&quot;300,640&quot; data-type=&quot;png&quot; data-w=&quot;1080&quot; type=&quot;block&quot; data-imgfileid=&quot;100001178&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;null&quot; data-index=&quot;1&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_png/GrHt0WCylYnreib7DOPGP1S7rjex998w5SrqJI2IfPDdktCIVFicj9aIp4Q4uA7l2j1HgxbCbmc679Ps8C9TYtA8XEBlUCvg4Fibs27VJ4DhyE/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1&amp;watermark=1#imgIndex=1&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; style=&quot;height: auto !important; visibility: visible !important; width: 520px !important;&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776233025888&quot; data-report-img-idx=&quot;1&quot; data-fail=&quot;0&quot;/&gt;&lt;/section&gt;&lt;/p&gt;&lt;h2 style=&quot;font-size:19.76px;font-weight:700;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:37.1488px;color:rgb(26, 32, 44);background-color:rgba(0, 0, 0, 0);margin:31.616px 0px 15.808px;margin-top:31.616px;margin-bottom:15.808px;margin-left:0px;margin-right:0px;padding:0px 0px 0px 14px;padding-top:0px;padding-bottom:0px;padding-left:14px;padding-right:0px;border-radius:0px 9px 9px 0px;border-left:4px solid rgb(26, 68, 128);text-decoration:none;text-align:start;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__41 js_darkmode__text__83&quot;&gt;&lt;span class=&quot;js_darkmode__text__84&quot;&gt;单文件部署是好文明&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__42 js_darkmode__text__85&quot;&gt;&lt;span class=&quot;js_darkmode__text__86&quot;&gt;用 Fody + Costura 把所有依赖打包成单个 EXE 文件——这是我认为桌面管理类软件应该有的形态。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__43 js_darkmode__text__87&quot;&gt;&lt;span class=&quot;js_darkmode__text__88&quot;&gt;酒店前台的网络环境参差不齐，有些是内网隔离，有些是多人共用一台老旧电脑。给一台全新电脑装软件，MySQL、.NET 运行时、依赖库全要配一遍？&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__44 js_darkmode__text__89&quot;&gt;&lt;span class=&quot;js_darkmode__text__90&quot;&gt;TS酒店管理系统不需要。拷贝 EXE，配置数据库连接，点开就用。部署成本极低。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;section style=&quot;text-align: center;&quot;&gt;&lt;img data-src=&quot;https://mmbiz.qpic.cn/mmbiz_png/GrHt0WCylYm4tQXeEG0icwiaD9VwykYqyZIjKrToFSUB2oXFzBuEGbzjZPOOvTicXnPpmPiaFq8Fldqk409plIMaCTAkfogfZicLmz3QhICmIYIY/640?wx_fmt=png&amp;amp;from=appmsg&amp;amp;watermark=1#imgIndex=2&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.6666666666666666&quot; data-s=&quot;300,640&quot; data-type=&quot;png&quot; data-w=&quot;1080&quot; type=&quot;block&quot; data-imgfileid=&quot;100001179&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;null&quot; data-index=&quot;2&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_png/GrHt0WCylYm4tQXeEG0icwiaD9VwykYqyZIjKrToFSUB2oXFzBuEGbzjZPOOvTicXnPpmPiaFq8Fldqk409plIMaCTAkfogfZicLmz3QhICmIYIY/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1&amp;watermark=1#imgIndex=2&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; style=&quot;height: auto !important; visibility: visible !important; width: 520px !important;&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776233026515&quot; data-report-img-idx=&quot;2&quot; data-fail=&quot;0&quot;/&gt;&lt;/section&gt;&lt;/p&gt;&lt;h2 style=&quot;font-size:19.76px;font-weight:700;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:37.1488px;color:rgb(26, 32, 44);background-color:rgba(0, 0, 0, 0);margin:31.616px 0px 15.808px;margin-top:31.616px;margin-bottom:15.808px;margin-left:0px;margin-right:0px;padding:0px 0px 0px 14px;padding-top:0px;padding-bottom:0px;padding-left:14px;padding-right:0px;border-radius:0px 9px 9px 0px;border-left:4px solid rgb(26, 68, 128);text-decoration:none;text-align:start;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__45 js_darkmode__text__91&quot;&gt;&lt;span class=&quot;js_darkmode__text__92&quot;&gt;适合谁用？&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__46 js_darkmode__text__93&quot;&gt;&lt;strong style=&quot;font-size:15.2px;font-weight:700;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(26, 68, 128);background-color:rgba(0, 0, 0, 0);margin:0px;margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:inline;width:auto;max-width:none;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__47 js_darkmode__text__94&quot;&gt;&lt;span class=&quot;js_darkmode__text__95&quot;&gt;中小型单体酒店&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__96&quot;&gt;，房间数在 20-100 间，没有上大型 &lt;span class=&quot;&quot;&gt;PMS&lt;/span&gt; 系统的预算，又不想用 Excel 管账。TS酒店管理系统覆盖了核心流程，能用、好用、不贵。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__48 js_darkmode__text__97&quot;&gt;&lt;strong style=&quot;font-size:15.2px;font-weight:700;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(26, 68, 128);background-color:rgba(0, 0, 0, 0);margin:0px;margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:inline;width:auto;max-width:none;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__49 js_darkmode__text__98&quot;&gt;&lt;span class=&quot;js_darkmode__text__99&quot;&gt;WinForm 开发者&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__100&quot;&gt;，想看 AntdUI 这种现代 UI 方案在桌面端怎么落地。代码结构不复杂，可以作为参考。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__50 js_darkmode__text__101&quot;&gt;&lt;strong style=&quot;font-size:15.2px;font-weight:700;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(26, 68, 128);background-color:rgba(0, 0, 0, 0);margin:0px;margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:inline;width:auto;max-width:none;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__51 js_darkmode__text__102&quot;&gt;&lt;span class=&quot;js_darkmode__text__103&quot;&gt;独立开发者&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__104&quot;&gt;，想接一个酒店信息化的小项目。这套系统可以作为起点，按需定制。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;section style=&quot;text-align: center;&quot;&gt;&lt;img data-src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/GrHt0WCylYlOYxQjKLic6qtOQgnpkeygzmJicFy37YibjiajB9E8kQzHHvyJQRzo3mdGm8Fzzm8gyOGmjXUTia26KWdbf5pXmmk2miakadLC3QHBU/640?wx_fmt=png&amp;amp;from=appmsg&amp;amp;watermark=1#imgIndex=3&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.6666666666666666&quot; data-s=&quot;300,640&quot; data-type=&quot;png&quot; data-w=&quot;1080&quot; type=&quot;block&quot; data-imgfileid=&quot;100001180&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;null&quot; data-index=&quot;3&quot; src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/GrHt0WCylYlOYxQjKLic6qtOQgnpkeygzmJicFy37YibjiajB9E8kQzHHvyJQRzo3mdGm8Fzzm8gyOGmjXUTia26KWdbf5pXmmk2miakadLC3QHBU/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1&amp;watermark=1#imgIndex=3&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; style=&quot;height: auto !important; visibility: visible !important; width: 520px !important;&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776233027414&quot; data-report-img-idx=&quot;3&quot; data-fail=&quot;0&quot;/&gt;&lt;/section&gt;&lt;/p&gt;&lt;h2 style=&quot;font-size:19.76px;font-weight:700;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:37.1488px;color:rgb(26, 32, 44);background-color:rgba(0, 0, 0, 0);margin:31.616px 0px 15.808px;margin-top:31.616px;margin-bottom:15.808px;margin-left:0px;margin-right:0px;padding:0px 0px 0px 14px;padding-top:0px;padding-bottom:0px;padding-left:14px;padding-right:0px;border-radius:0px 9px 9px 0px;border-left:4px solid rgb(26, 68, 128);text-decoration:none;text-align:start;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__52 js_darkmode__text__105&quot;&gt;&lt;span class=&quot;js_darkmode__text__106&quot;&gt;最后&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__53 js_darkmode__text__107&quot;&gt;&lt;span class=&quot;js_darkmode__text__108&quot;&gt;酒店管理信息化是个老话题。这个领域从来不缺软件，缺的是&amp;quot;看着顺眼、用着顺手、部署起来不麻烦&amp;quot;的方案。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__54 js_darkmode__text__109&quot;&gt;&lt;span class=&quot;js_darkmode__text__110&quot;&gt;TS酒店管理系统用 .NET 10 + AntdUI 证明了一件事：桌面端软件也可以有现代感。只要选对了工具，&amp;quot;能用就行&amp;quot;和&amp;quot;好看好用&amp;quot;之间，没有那么大的鸿沟。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__55 js_darkmode__text__111&quot;&gt;&lt;span class=&quot;js_darkmode__text__112&quot;&gt;如果你感兴趣，源码和演示都在 Gitee 上，MIT 协议，可以免费商用：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__56 js_darkmode__text__113&quot;&gt;&lt;strong style=&quot;font-size:15.2px;font-weight:700;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(26, 68, 128);background-color:rgba(0, 0, 0, 0);margin:0px;margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:inline;width:auto;max-width:none;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__57 js_darkmode__text__114&quot;&gt;&lt;span class=&quot;js_darkmode__text__115&quot;&gt;源码地址&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__116&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 16.72px;margin-top:0px;margin-bottom:16.72px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:start;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__58 js_darkmode__text__117 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__119&quot;&gt;&lt;span class=&quot;js_darkmode__text__120&quot;&gt;WinForm 桌面端：https://gitee.com/java-and-net/TopskyHotelManagementSystem&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__122&quot;&gt;&lt;span class=&quot;js_darkmode__text__123&quot;&gt;Vue3 Web版：https://gitee.com/java-and-net/topsky-hotel-management-system-vue3&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__125&quot;&gt;&lt;span class=&quot;js_darkmode__text__126&quot;&gt;MAUI 安卓版：https://gitee.com/java-and-net/topsky-hotel-management-system-maui&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__128&quot;&gt;&lt;span class=&quot;js_darkmode__text__129&quot;&gt;Web API 后端：https://gitee.com/java-and-net/topsky-hotel-management-system-web-api&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__63 js_darkmode__text__130&quot;&gt;&lt;strong style=&quot;font-size:15.2px;font-weight:700;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(26, 68, 128);background-color:rgba(0, 0, 0, 0);margin:0px;margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:inline;width:auto;max-width:none;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__64 js_darkmode__text__131&quot;&gt;&lt;span class=&quot;js_darkmode__text__132&quot;&gt;数据库设计&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__133&quot;&gt;：https://oscode.top/project/tshotel/db_design.html&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size:15.2px;font-weight:400;font-family:-apple-system, &amp;quot;HarmonyOS Sans SC&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif;font-style:normal;line-height:28.576px;color:rgb(31, 41, 51);background-color:rgba(0, 0, 0, 0);margin:0px 0px 17.48px;margin-top:0px;margin-bottom:17.48px;margin-left:0px;margin-right:0px;padding:0px;padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;border:0px solid rgb(229, 231, 235);border-radius:0px;border-left:0px solid rgb(229, 231, 235);text-decoration:none;text-align:justify;display:block;width:678px;max-width:680px;overflow:visible;word-break:normal;word-wrap:normal;white-space:normal;&quot; class=&quot;js_darkmode__65 js_darkmode__text__134&quot;&gt;&lt;span class=&quot;js_darkmode__text__135&quot;&gt;好用的软件值得被看见。&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Wed, 15 Apr 2026 14:04:30 +0800</pubDate></item><item><title>.NET 高级开发 | .NET 中的序列化和反序列化</title><link>https://www.codepub.top/post/259.html</link><description>&lt;h1 style=&quot;font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; text-align: center; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 1.2em; font-weight: bold; display: table; margin: 2em auto 1em; padding: 0px 1em; border-bottom: 2px solid rgb(15, 76, 129); color: rgb(63, 63, 63); visibility: visible;&quot; data-pm-slice=&quot;0 0 []&quot; class=&quot;js_darkmode__0&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;.NET 中的序列化和反序列化&lt;/span&gt;&lt;/h1&gt;&lt;p style=&quot;font-family: &amp;quot;Noto Sans SC&amp;quot;; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; text-align: left; line-height: 1.75; margin: 1.5em 8px; letter-spacing: 0.1em; color: rgb(63, 63, 63); visibility: visible;&quot; class=&quot;js_darkmode__1&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;在 ASP.NET Core 应用中，框架会屏蔽了很多实现序列化和反序列化的细节，我们只需要定义参数模型，ASP.NET Core 会自动将 http 请求的 Body 反序列化为模型对象。但是日常开发中我们会对序列化和反序列化做许多定制配置，比如忽略值为 null 的字段、时间格式处理、忽略大小写、字段类型转换等各种情况。因此笔者单独使用一章讲解序列化框架的使用以及如何进行定制，深入了解 .NET 中序列化和反序列化机制。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; text-align: left; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; margin: 1.5em 8px; letter-spacing: 0.1em; color: rgb(63, 63, 63); visibility: visible;&quot; class=&quot;js_darkmode__2&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;System.Text.Json 是 .NET 框架自带的序列化框架，简单易用并且性能也很出色，使用 System.Text.Json 反序列化字符串为对象是很简单的，示例如下：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191); background: rgb(40, 44, 52); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; text-align: left; line-height: 1.5; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; overflow-x: auto; border-radius: 8px; margin: 10px 8px; padding: 0px !important; visibility: visible;&quot; class=&quot;js_darkmode__3&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace; display: -webkit-box; padding: 0.5em 1em 1em; overflow-x: auto; text-indent: 0px; text-align: left; line-height: 1.75; font-size: 14px; margin: 0px; white-space: nowrap; visibility: visible;&quot;&gt;&lt;span style=&quot;color: #5C6370; font-style: italic; visibility: visible;&quot; class=&quot;js_darkmode__4&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;// 自定义序列化配置&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;visibility: visible;&quot;/&gt;&lt;span style=&quot;color: #C678DD; visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;static&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;JsonSerializerOptions&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&amp;nbsp;jsonSerializerOptions&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #C678DD; visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;JsonSerializerOptions&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;()&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;visibility: visible;&quot;/&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;visibility: visible;&quot;/&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;PropertyNameCaseInsensitive&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #56B6C2; visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;true&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;visibility: visible;&quot;/&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;WriteIndented&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #56B6C2; visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;true&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;visibility: visible;&quot;/&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;};&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;visibility: visible;&quot;/&gt;&lt;br style=&quot;visibility: visible;&quot;/&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;color: #C678DD; visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;public&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #C678DD; visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;static&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #C678DD; visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;void&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #61AEEE; visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;Main&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;visibility: visible;&quot;/&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;visibility: visible;&quot;/&gt;&lt;span style=&quot;color: #C678DD; visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;const&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #E6C07B; visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&amp;nbsp;json&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;=&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;visibility: visible;&quot;/&gt;&lt;span style=&quot;color: #98C379; visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #98C379; visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;visibility: visible;&quot;/&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;visibility: visible;&quot;/&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;Name&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #98C379; visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&amp;quot;: &amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;工良&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #98C379; visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;visibility: visible;&quot;/&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;visibility: visible;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;visibility: visible;&quot;/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;obj&amp;nbsp;=JsonSerializer.Deserialize&amp;lt;Model&amp;gt;(json,&amp;nbsp;jsonSerializerOptions);&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #61AEEE;&quot;&gt;Model&lt;/span&gt;&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;string&lt;/span&gt;Name{&lt;span style=&quot;color: #C678DD;&quot;&gt;get&lt;/span&gt;;&lt;span style=&quot;color: #C678DD;&quot;&gt;set&lt;/span&gt;;}&lt;br/&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__5&quot;&gt;JsonSerializerOptions 的属性定义了如何序列化和反序列化，其常用属性如下：&lt;/p&gt;&lt;p&gt;&lt;section style=&quot;color: rgb(0, 0, 0);font-family: &amp;quot;Noto Sans SC&amp;quot;;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;padding: 0px 8px;&quot; class=&quot;js_darkmode__6&quot;&gt;&lt;table&gt;&lt;thead&gt;&lt;tr class=&quot;firstRow&quot;&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__7&quot;&gt;&lt;section&gt;属性&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__8&quot;&gt;&lt;section&gt;类型&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__9&quot;&gt;&lt;section&gt;说明&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__10&quot;&gt;&lt;section&gt;AllowTrailingCommas&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__11&quot;&gt;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__12&quot;&gt;bool&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__13&quot;&gt;&lt;section&gt;忽略 JSON 中多余的逗号&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__14&quot;&gt;&lt;section&gt;Converters&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__15&quot;&gt;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__16&quot;&gt;IList&amp;lt;JsonConverter&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__17&quot;&gt;&lt;section&gt;转换器列表&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__18&quot;&gt;&lt;section&gt;DefaultBufferSize&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__19&quot;&gt;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__20&quot;&gt;int&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__21&quot;&gt;&lt;section&gt;默认缓冲区大小&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__22&quot;&gt;&lt;section&gt;DefaultIgnoreCondition&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__23&quot;&gt;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__24&quot;&gt;JsonIgnoreCondition&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__25&quot;&gt;&lt;section&gt;当字段/属性的值为默认值时，是否忽略&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__26&quot;&gt;&lt;section&gt;DictionaryKeyPolicy&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__27&quot;&gt;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__28&quot;&gt;JsonNamingPolicy&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__29&quot;&gt;&lt;section&gt;字典 Key 重命名规则，如首字母生成小写&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__30&quot;&gt;&lt;section&gt;IgnoreNullValues&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__31&quot;&gt;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__32&quot;&gt;bool&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__33&quot;&gt;&lt;section&gt;忽略 JSON 中值为 null 的字段/属性&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__34&quot;&gt;&lt;section&gt;IgnoreReadOnlyFields&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__35&quot;&gt;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__36&quot;&gt;bool&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__37&quot;&gt;&lt;section&gt;忽略只读字段&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__38&quot;&gt;&lt;section&gt;IgnoreReadOnlyProperties&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__39&quot;&gt;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__40&quot;&gt;bool&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__41&quot;&gt;&lt;section&gt;忽略只读属性&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__42&quot;&gt;&lt;section&gt;IncludeFields&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__43&quot;&gt;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__44&quot;&gt;bool&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__45&quot;&gt;&lt;section&gt;是否处理字段，默认只处理属性&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__46&quot;&gt;&lt;section&gt;MaxDepth&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__47&quot;&gt;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__48&quot;&gt;int&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__49&quot;&gt;&lt;section&gt;最大嵌套深度，默认最大深度为 64&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__50&quot;&gt;&lt;section&gt;NumberHandling&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__51&quot;&gt;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__52&quot;&gt;JsonNumberHandling&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__53&quot;&gt;&lt;section&gt;如何处理数字类型&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__54&quot;&gt;&lt;section&gt;PropertyNameCaseInsensitive&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__55&quot;&gt;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__56&quot;&gt;bool&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__57&quot;&gt;&lt;section&gt;忽略大小写&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__58&quot;&gt;&lt;section&gt;PropertyNamingPolicy&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__59&quot;&gt;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__60&quot;&gt;JsonNamingPolicy&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__61&quot;&gt;&lt;section&gt;重命名规则，如首字母生成小写&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__62&quot;&gt;&lt;section&gt;ReadCommentHandling&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__63&quot;&gt;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__64&quot;&gt;JsonCommentHandling&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__65&quot;&gt;&lt;section&gt;处理注释&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__66&quot;&gt;&lt;section&gt;WriteIndented&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__67&quot;&gt;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__68&quot;&gt;bool&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__69&quot;&gt;&lt;section&gt;序列化时格式化 JSON，如换行、空格、缩进&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__70&quot;&gt;接下来笔者将会列举一些常用的定制场景和编码方法，为了避免混肴，在本章中所指的 “字段” 或 “属性”，等同于类型的“字段和属性”。&lt;/p&gt;&lt;h2 style=&quot;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: center;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;font-size: 1.2em;font-weight: bold;display: table;margin: 4em auto 2em;padding: 0px 0.2em;background: rgb(15, 76, 129);color: rgb(255, 255, 255);&quot;&gt;编写类型转换器&lt;/h2&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__71&quot;&gt;类型转换器的作用是当 json 对象字段和模型类字段类型不一致时，可以自动转换对应的类型，下面笔者介绍常用的几种类型转换器。&lt;/p&gt;&lt;h3 style=&quot;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.2;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;font-size: 1.1em;font-weight: bold;margin: 2em 8px 0.75em 0px;padding-left: 8px;border-left: 3px solid rgb(15, 76, 129);color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__72&quot;&gt;枚举转换器&lt;/h3&gt;&lt;h4 style=&quot;font-size: 1em;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;font-weight: bold;margin: 2em 8px 0.5em;color: rgb(15, 76, 129);&quot; class=&quot;js_darkmode__73&quot;&gt;.NET 是如何序列化枚举&lt;/h4&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__74&quot;&gt;编写 WebAPI 的模型类时常常会用到枚举，枚举类型默认会以数值的形式输出到 json 中。&lt;/p&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__75&quot;&gt;C# 代码示例如下：&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__76&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__77&quot;&gt;// 枚举&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;enum&lt;/span&gt;NetworkType&lt;br/&gt;{&lt;br/&gt;Unknown=&lt;span style=&quot;color: #D19A66;&quot;&gt;0&lt;/span&gt;,&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IPV4&amp;nbsp;=&lt;span style=&quot;color: #D19A66;&quot;&gt;1&lt;/span&gt;,&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IPV6&amp;nbsp;=&lt;span style=&quot;color: #D19A66;&quot;&gt;2&lt;/span&gt;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__78&quot;&gt;// 类型&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #61AEEE;&quot;&gt;Model&lt;/span&gt;&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;string&lt;/span&gt;Name{&lt;span style=&quot;color: #C678DD;&quot;&gt;get&lt;/span&gt;;&lt;span style=&quot;color: #C678DD;&quot;&gt;set&lt;/span&gt;;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;NetworkTypeNetwotk1{&lt;span style=&quot;color: #C678DD;&quot;&gt;get&lt;/span&gt;;&lt;span style=&quot;color: #C678DD;&quot;&gt;set&lt;/span&gt;;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;NetworkType?Netwotk2{&lt;span style=&quot;color: #C678DD;&quot;&gt;get&lt;/span&gt;;&lt;span style=&quot;color: #C678DD;&quot;&gt;set&lt;/span&gt;;}&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;model&amp;nbsp;=&lt;span style=&quot;color: #C678DD;&quot;&gt;new&lt;/span&gt;Model&lt;br/&gt;{&lt;br/&gt;Name=&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;工良&amp;quot;&lt;/span&gt;,&lt;br/&gt;Netwotk1=NetworkType.IPV4,&lt;br/&gt;Netwotk2=NetworkType.IPV6&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__79&quot;&gt;当我们序列化对象时，会得到这样的结果：&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__80&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;{&lt;br/&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;Name&amp;quot;&lt;/span&gt;:&amp;nbsp;&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;工良&amp;quot;&lt;/span&gt;,&lt;br/&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;Netwotk1&amp;quot;&lt;/span&gt;:&amp;nbsp;&lt;span style=&quot;color: #D19A66;&quot;&gt;1&lt;/span&gt;,&lt;br/&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;Netwotk2&amp;quot;&lt;/span&gt;:&amp;nbsp;&lt;span style=&quot;color: #D19A66;&quot;&gt;2&lt;/span&gt;&lt;br/&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__81&quot;&gt;但是这样会在阅读上带来难题，数字记忆比较困难，并且后期需要扩展枚举字段时，可能会导致对应数值的变化，那么已经对接的代码都需要修改，如果枚举涉及的范围比较广，那么要做出修改就会变得十分困难。&lt;/p&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__82&quot;&gt;比如说突然出现了一个 IPV5，那么我们除了改代码，可能还要修改以及对接的其它应用。&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__83&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #E6C07B;&quot;&gt;enum&lt;/span&gt;&amp;nbsp;NetworkType&lt;br/&gt;{&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;Unknown&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color: #D19A66;&quot;&gt;0&lt;/span&gt;,&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IPV4&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color: #D19A66;&quot;&gt;1&lt;/span&gt;,&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IPV5&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color: #D19A66;&quot;&gt;2&lt;/span&gt;,&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IPV6&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color: #D19A66;&quot;&gt;3&lt;/span&gt;&lt;br/&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__84&quot;&gt;因此，我们需要一种方法，能够让枚举序列化后使用对应的名称表示，以及能够使用这个字符串转化为对应的枚举类型，后期需要扩展或中间插入时，对以前的代码和数据库完全没有影响。&lt;/p&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__85&quot;&gt;比如反序列化时，得到的是这样的 json：&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__86&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&lt;span style=&quot;color: #D19A66;&quot;&gt;&amp;quot;Netwotk1&amp;quot;&lt;/span&gt;:&amp;nbsp;&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;IPV4&amp;quot;&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #D19A66;&quot;&gt;&amp;quot;Netwotk2&amp;quot;&lt;/span&gt;:&amp;nbsp;&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;IPV6&amp;quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__87&quot;&gt;即使后来中间插入一个 IPV5，生成新的字符串即可，完全不需要重新排序&lt;span class=&quot;&quot;&gt;枚举值&lt;/span&gt;。&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__88&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&lt;span style=&quot;color: #D19A66;&quot;&gt;&amp;quot;Netwotk1&amp;quot;&lt;/span&gt;:&amp;nbsp;&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;IPV4&amp;quot;&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #D19A66;&quot;&gt;&amp;quot;Netwotk2&amp;quot;&lt;/span&gt;:&amp;nbsp;&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;IPV6&amp;quot;&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #D19A66;&quot;&gt;&amp;quot;Netwotk3&amp;quot;&lt;/span&gt;:&amp;nbsp;&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;IPV5&amp;quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__89&quot;&gt;在 C# 模型类中使用枚举而 json 中使用字符串，要实现这种形式的枚举转换，有两种方法。&lt;/p&gt;&lt;ul style=&quot;list-style-type: circle;&quot; class=&quot;js_darkmode__90 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section&gt;• 在模型类的枚举字段或属性上放置一个特性注解，序列化反序列化时从这个特性注解中获取转换器。&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;• 使用 JsonSerializerOptions 添加转换器，在反序列化或序列化时传递自定义配置。&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__93&quot;&gt;无论哪种方法，我们都需要实现一个转换器，能够将模型类中的枚举使用对应的名称序列化到 json 中。在实现自定义转换器示例之前，我们来了解相关的一些知识。&lt;/p&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__94&quot;&gt;自定义转换器需要继承&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__95&quot;&gt;JsonConverter&lt;/code&gt;&amp;nbsp;或&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__96&quot;&gt;JsonConverter&amp;lt;T&amp;gt;&lt;/code&gt;，当反序列化 json 的字段或序列化对象的字段属性时，框架会自动调用转换器。&lt;/p&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__97&quot;&gt;以&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__98&quot;&gt;JsonConverter&amp;lt;T&amp;gt;&lt;/code&gt;&amp;nbsp;为例，里面有好几个抽象接口，我们一般只需要实现转换器的两个抽象接口即可：&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__99&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__100&quot;&gt;// json 值 =&amp;gt; 对象字段&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;abstract&lt;/span&gt;&amp;nbsp;T?&amp;nbsp;Read(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&amp;nbsp;Utf8JsonReader&amp;nbsp;reader,&amp;nbsp;Type&amp;nbsp;typeToConvert,&amp;nbsp;JsonSerializerOptions&amp;nbsp;options);&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__101&quot;&gt;// 对象字段 =&amp;gt; json 值&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;abstract&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;void&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;Write&lt;/span&gt;(Utf8JsonWriter&amp;nbsp;writer,&amp;nbsp;T&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;,&amp;nbsp;JsonSerializerOptions&amp;nbsp;options);&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__102&quot;&gt;不过我们一定要注意 C# 中的可空类型，比如&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__103&quot;&gt;NetworkType&lt;/code&gt;&amp;nbsp;和&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__104&quot;&gt;NetworkType?&lt;/code&gt;&amp;nbsp;实际上是两种类型，可空类型本质是使用&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__105&quot;&gt;Nullable&amp;lt;T&amp;gt;&lt;/code&gt;&amp;nbsp;包装的类型。&lt;/p&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__106&quot;&gt;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__107&quot;&gt;Nullable&amp;lt;T&amp;gt;&lt;/code&gt;&amp;nbsp;的定义如下：&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__108&quot;&gt;public&amp;nbsp;struct&amp;nbsp;Nullable&amp;lt;T&amp;gt;&amp;nbsp;where&amp;nbsp;T&amp;nbsp;:&amp;nbsp;struct&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__109&quot;&gt;另外&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__110&quot;&gt;Nullable&amp;lt;T&amp;gt;&lt;/code&gt;&amp;nbsp;实现了和 T 类型的隐式和显式转换重载，所以我们在使用可空类型时，可能不太容易感受出&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__111&quot;&gt;Nullable&amp;lt;T&amp;gt;&lt;/code&gt;&amp;nbsp;和 T 区别，比如可以在使用可空类型&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__112&quot;&gt;T?&lt;/code&gt;&amp;nbsp;时，直接将&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__113&quot;&gt;Nullable&amp;lt;T&amp;gt;&lt;/code&gt;&amp;nbsp;与&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__114&quot;&gt;T&lt;/code&gt;&amp;nbsp;类型隐式和显式转换，如：&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__115&quot;&gt;Nullable&amp;lt;int&amp;gt;&amp;nbsp;value&amp;nbsp;=&amp;nbsp;100&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__116&quot;&gt;但是在使用反射时，由于&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__117&quot;&gt;T&lt;/code&gt;&amp;nbsp;和&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__118&quot;&gt;T?&lt;/code&gt;&amp;nbsp;是两种不同的类型，因此我们编写转换器时必须留意到这种区别，否则会出现错误。&lt;/p&gt;&lt;h4 style=&quot;font-size: 1em;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;font-weight: bold;margin: 2em 8px 0.5em;color: rgb(15, 76, 129);&quot; class=&quot;js_darkmode__119&quot;&gt;实现枚举转换器&lt;/h4&gt;&lt;blockquote style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;border-left: none;padding: 1em;border-radius: 8px;color: rgba(0, 0, 0, 0.5);background: rgb(247, 247, 247);margin: 2em 8px;&quot; class=&quot;js_darkmode__120&quot;&gt;&lt;p style=&quot;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;font-size: 1em;letter-spacing: 0.1em;color: rgb(80, 80, 80);display: block;&quot; class=&quot;js_darkmode__121&quot;&gt;本节示例代码在 Demo4.Console 中。&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__122&quot;&gt;编写一个枚举字符串转换器代码示例如下：&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__123&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #61AEEE;&quot;&gt;EnumStringConverter&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #61AEEE;&quot;&gt;TEnum&lt;/span&gt;&amp;gt;:&lt;span style=&quot;color: #61AEEE;&quot;&gt;JsonConverter&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #61AEEE;&quot;&gt;TEnum&lt;/span&gt;&amp;gt;&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;readonly&lt;/span&gt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;bool&lt;/span&gt;&amp;nbsp;_isNullable;&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;EnumStringConverter&lt;/span&gt;(&lt;span style=&quot;color: #E6C07B;&quot;&gt;bool&lt;/span&gt;&amp;nbsp;isNullType)&lt;br/&gt;{&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _isNullable&amp;nbsp;=&amp;nbsp;isNullType;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__124&quot;&gt;// 判断当前类型是否可以使用该转换器转换&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;override&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #E6C07B;&quot;&gt;bool&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;CanConvert&lt;/span&gt;(Type&amp;nbsp;objectType)=&amp;gt;EnumStringConverterFactory.IsEnum(objectType);&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__125&quot;&gt;// 从 json 中读取数据&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__126&quot;&gt;// JSON =&amp;gt; 值&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__127&quot;&gt;// typeToConvert: 模型类属性/字段的类型&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;override&lt;/span&gt;&amp;nbsp;TEnum&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;Read&lt;/span&gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&amp;nbsp;Utf8JsonReader&amp;nbsp;reader,&amp;nbsp;Type&amp;nbsp;typeToConvert,&amp;nbsp;JsonSerializerOptions&amp;nbsp;options)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__128&quot;&gt;// 读取 json&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;=&amp;nbsp;reader.GetString();&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;==&lt;span style=&quot;color: #56B6C2;&quot;&gt;null&lt;/span&gt;)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(_isNullable)&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #56B6C2;&quot;&gt;default&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;throw&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;new&lt;/span&gt;ArgumentNullException(&lt;span style=&quot;color: #C678DD;&quot;&gt;nameof&lt;/span&gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;));&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__129&quot;&gt;// 是否为可空类型&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;sourceType&amp;nbsp;=EnumStringConverterFactory.GetSourceType(&lt;span style=&quot;color: #C678DD;&quot;&gt;typeof&lt;/span&gt;(TEnum));&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(Enum.TryParse(sourceType,&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;.ToString(),&lt;span style=&quot;color: #C678DD;&quot;&gt;out&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;result))&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;(TEnum)result!;&lt;br/&gt;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;throw&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;new&lt;/span&gt;InvalidOperationException(&lt;span style=&quot;color: #98C379;&quot;&gt;$&amp;quot;&lt;span style=&quot;color: #E06C75;&quot;&gt;{&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;}&lt;/span&gt;&amp;nbsp;值不在枚举&amp;nbsp;&lt;span style=&quot;color: #E06C75;&quot;&gt;{&lt;span style=&quot;color: #C678DD;&quot;&gt;typeof&lt;/span&gt;(TEnum).Name}&lt;/span&gt;&amp;nbsp;范围中&amp;quot;&lt;/span&gt;);&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__130&quot;&gt;// 值 =&amp;gt; JSON&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;override&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;void&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;Write&lt;/span&gt;(Utf8JsonWriter&amp;nbsp;writer,&amp;nbsp;TEnum?&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;,&amp;nbsp;JsonSerializerOptions&amp;nbsp;options)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;==&lt;span style=&quot;color: #56B6C2;&quot;&gt;null&lt;/span&gt;)&amp;nbsp;writer.WriteNullValue();&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;else&lt;/span&gt;&amp;nbsp;writer.WriteStringValue(Enum.GetName(&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;.GetType(),&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;));&lt;br/&gt;}&lt;br/&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;blockquote style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;border-left: none;padding: 1em;border-radius: 8px;color: rgba(0, 0, 0, 0.5);background: rgb(247, 247, 247);margin: 2em 8px;&quot; class=&quot;js_darkmode__131&quot;&gt;&lt;p style=&quot;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;font-size: 1em;letter-spacing: 0.1em;color: rgb(80, 80, 80);display: block;&quot; class=&quot;js_darkmode__132&quot;&gt;由于 Utf8JsonReader 日常出行的机会不多，因此读者可能不太了解，在本章的末尾，笔者会简单介绍。&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__133&quot;&gt;一般情况下，我们不会直接使用 EnumStringConverter ，为了能够适应所有枚举类型，还需要编写一个枚举转换工厂，通过工厂模式判断输入类型之后，再创建对应的转换器。&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__134&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #61AEEE;&quot;&gt;EnumStringConverterFactory&lt;/span&gt;:&lt;span style=&quot;color: #61AEEE;&quot;&gt;JsonConverterFactory&lt;/span&gt;&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__135&quot;&gt;// 获取需要转换的类型&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #E6C07B;&quot;&gt;bool&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;IsEnum&lt;/span&gt;(Type&amp;nbsp;objectType)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(objectType.IsEnum)&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #56B6C2;&quot;&gt;true&lt;/span&gt;;&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;sourceType&amp;nbsp;=Nullable.GetUnderlyingType(objectType);&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;&amp;nbsp;sourceType&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;is&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;not&lt;/span&gt;&lt;span style=&quot;color: #56B6C2;&quot;&gt;null&lt;/span&gt;&amp;amp;&amp;amp;&amp;nbsp;sourceType.IsEnum;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__136&quot;&gt;// 如果类型是可空类型，则获取原类型&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;static&lt;/span&gt;&amp;nbsp;Type&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;GetSourceType&lt;/span&gt;(Type&amp;nbsp;typeToConvert)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(typeToConvert.IsEnum)&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;&amp;nbsp;typeToConvert;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;Nullable.GetUnderlyingType(typeToConvert);&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__137&quot;&gt;// 判断该类型是否属于枚举&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;override&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #E6C07B;&quot;&gt;bool&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;CanConvert&lt;/span&gt;(Type&amp;nbsp;typeToConvert)=&amp;gt;IsEnum(typeToConvert);&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__138&quot;&gt;// 为该字段创建一个对应的类型转换器&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;override&lt;/span&gt;JsonConverter?CreateConverter(Type&amp;nbsp;typeToConvert,JsonSerializerOptions&amp;nbsp;options)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;sourceType&amp;nbsp;=GetSourceType(typeToConvert);&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;converter&amp;nbsp;=&lt;span style=&quot;color: #C678DD;&quot;&gt;typeof&lt;/span&gt;(EnumStringConverter&amp;lt;&amp;gt;).MakeGenericType(typeToConvert);&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;(JsonConverter)Activator.CreateInstance(converter,&lt;span style=&quot;color: #C678DD;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;object&lt;/span&gt;[]{&amp;nbsp;sourceType&amp;nbsp;!=&amp;nbsp;typeToConvert&amp;nbsp;});&lt;br/&gt;}&lt;br/&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__139&quot;&gt;当 System.Text.Json 处理一个字段时，会调用 EnumStringConverterFactory 的&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__140&quot;&gt;CanConvert&lt;/code&gt;&amp;nbsp;方法，如果返回 true，则会调用 EnumStringConverterFactory 的&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__141&quot;&gt;CreateConverter&lt;/code&gt;&amp;nbsp;方法创转换器，最后调用转换器处理字段，这样一来，我们可以通过泛型类&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__142&quot;&gt;EnumStringConverter&amp;lt;TEnum&amp;gt;&lt;/code&gt;&amp;nbsp;处理各种枚举。&lt;/p&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__143&quot;&gt;然后定义特性注解，能够将模型类的属性字段绑定到一个转换器上。&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__144&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;[&lt;span style=&quot;color: #61AEEE;&quot;&gt;AttributeUsage(AttributeTargets.Enum&amp;nbsp;|&amp;nbsp;AttributeTargets.Property&amp;nbsp;|&amp;nbsp;AttributeTargets.Field,&amp;nbsp;AllowMultiple&amp;nbsp;=&amp;nbsp;false)&lt;/span&gt;]&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #61AEEE;&quot;&gt;EnumConverterAttribute&lt;/span&gt;:&lt;span style=&quot;color: #61AEEE;&quot;&gt;JsonConverterAttribute&lt;/span&gt;&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;override&lt;/span&gt;&amp;nbsp;JsonConverter&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;CreateConverter&lt;/span&gt;(Type&amp;nbsp;typeToConvert)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;new&lt;/span&gt;EnumStringConverterFactory();&lt;br/&gt;}&lt;br/&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;/code&gt;&lt;/pre&gt;&lt;h4 style=&quot;font-size: 1em;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;font-weight: bold;margin: 2em 8px 0.5em;color: rgb(15, 76, 129);&quot; class=&quot;js_darkmode__145&quot;&gt;如何使用类型转换器&lt;/h4&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__146&quot;&gt;使用自定义类型转换器有三种方法。&lt;/p&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__147&quot;&gt;方法一，在枚举字段中使用自定义特性：&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__148&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #61AEEE;&quot;&gt;Model&lt;/span&gt;&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;string&lt;/span&gt;Name{&lt;span style=&quot;color: #C678DD;&quot;&gt;get&lt;/span&gt;;&lt;span style=&quot;color: #C678DD;&quot;&gt;set&lt;/span&gt;;}&lt;br/&gt;&lt;br/&gt;[&lt;span style=&quot;color: #61AEEE;&quot;&gt;EnumConverter&lt;/span&gt;]&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;NetworkTypeNetwotk1{&lt;span style=&quot;color: #C678DD;&quot;&gt;get&lt;/span&gt;;&lt;span style=&quot;color: #C678DD;&quot;&gt;set&lt;/span&gt;;}&lt;br/&gt;&lt;br/&gt;[&lt;span style=&quot;color: #61AEEE;&quot;&gt;EnumConverter&lt;/span&gt;]&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;NetworkType?Netwotk2{&lt;span style=&quot;color: #C678DD;&quot;&gt;get&lt;/span&gt;;&lt;span style=&quot;color: #C678DD;&quot;&gt;set&lt;/span&gt;;}&lt;br/&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__149&quot;&gt;方法二，使用&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__150&quot;&gt;JsonConverter&lt;/code&gt;&amp;nbsp;特性。&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__151&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #61AEEE;&quot;&gt;Model&lt;/span&gt;&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;string&lt;/span&gt;Name{&lt;span style=&quot;color: #C678DD;&quot;&gt;get&lt;/span&gt;;&lt;span style=&quot;color: #C678DD;&quot;&gt;set&lt;/span&gt;;}&lt;br/&gt;&lt;br/&gt;[&lt;span style=&quot;color: #61AEEE;&quot;&gt;JsonConverter(typeof(EnumConverter))&lt;/span&gt;]&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;NetworkTypeNetwotk1{&lt;span style=&quot;color: #C678DD;&quot;&gt;get&lt;/span&gt;;&lt;span style=&quot;color: #C678DD;&quot;&gt;set&lt;/span&gt;;}&lt;br/&gt;&lt;br/&gt;[&lt;span style=&quot;color: #61AEEE;&quot;&gt;JsonConverter(typeof(EnumConverter))&lt;/span&gt;]&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;NetworkType?Netwotk2{&lt;span style=&quot;color: #C678DD;&quot;&gt;get&lt;/span&gt;;&lt;span style=&quot;color: #C678DD;&quot;&gt;set&lt;/span&gt;;}&lt;br/&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__152&quot;&gt;方法三，在配置中添加转换器。&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__153&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jsonSerializerOptions.Converters.Add(&lt;span style=&quot;color: #C678DD;&quot;&gt;new&lt;/span&gt;&amp;nbsp;EnumStringConverterFactory());&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;obj&amp;nbsp;=&amp;nbsp;JsonSerializer.Deserialize&amp;lt;Model&amp;gt;(json,&amp;nbsp;jsonSerializerOptions);&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__154&quot;&gt;在模型类中使用转换器特性之后，我们可以通过字符串反序列化为枚举类型：&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__155&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;const&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #E6C07B;&quot;&gt;string&lt;/span&gt;&amp;nbsp;json&amp;nbsp;=&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;&lt;/span&gt;Name&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;: &amp;quot;&lt;/span&gt;工良&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;,&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;&lt;/span&gt;Netwotk1&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;: &amp;quot;&lt;/span&gt;IPV4&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;,&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;&lt;/span&gt;Netwotk2&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;: &amp;quot;&lt;/span&gt;IPV6&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;;&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;obj&amp;nbsp;=&amp;nbsp;JsonSerializer.Deserialize&amp;lt;Model&amp;gt;(json,&amp;nbsp;jsonSerializerOptions);&lt;/code&gt;&lt;/pre&gt;&lt;h4 style=&quot;font-size: 1em;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;font-weight: bold;margin: 2em 8px 0.5em;color: rgb(15, 76, 129);&quot; class=&quot;js_darkmode__156&quot;&gt;使用官方的转换器&lt;/h4&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__157&quot;&gt;System.Text.Json 中已经实现了很多转换器，可以在官方源码的&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__158&quot;&gt;System/Text/Json/Serialization/Converters/Value&lt;/code&gt;&amp;nbsp;下找到所有自带的转换器，其中官方实现的枚举字符串转换器叫 JsonStringEnumConverter ，使用方法跟我们的自定义转换器一致。&lt;/p&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__159&quot;&gt;这里我们可以使用官方的 JsonStringEnumConverter 转换器替代&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__160&quot;&gt;EnumStringConverter&amp;lt;TEnum&amp;gt;&lt;/code&gt;：&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__161&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #61AEEE;&quot;&gt;Model&lt;/span&gt;&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;string&lt;/span&gt;Name{&lt;span style=&quot;color: #C678DD;&quot;&gt;get&lt;/span&gt;;&lt;span style=&quot;color: #C678DD;&quot;&gt;set&lt;/span&gt;;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;NetworkTypeNetwotk1{&lt;span style=&quot;color: #C678DD;&quot;&gt;get&lt;/span&gt;;&lt;span style=&quot;color: #C678DD;&quot;&gt;set&lt;/span&gt;;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;NetworkType?Netwotk2{&lt;span style=&quot;color: #C678DD;&quot;&gt;get&lt;/span&gt;;&lt;span style=&quot;color: #C678DD;&quot;&gt;set&lt;/span&gt;;}&lt;br/&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;/code&gt;&lt;/pre&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__162&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;JsonSerializerOptions&amp;nbsp;jsonSerializerOptions&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;new&lt;/span&gt;();&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jsonSerializerOptions.Converters.Add(&lt;span style=&quot;color: #C678DD;&quot;&gt;new&lt;/span&gt;&amp;nbsp;JsonStringEnumConverter());&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;const&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #E6C07B;&quot;&gt;string&lt;/span&gt;&amp;nbsp;json&amp;nbsp;=&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;&lt;/span&gt;Name&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;: &amp;quot;&lt;/span&gt;工良&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;,&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;&lt;/span&gt;Netwotk1&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;: &amp;quot;&lt;/span&gt;IPV4&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;,&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;&lt;/span&gt;Netwotk2&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;: &amp;quot;&lt;/span&gt;IPV6&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;;&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;obj&amp;nbsp;=&amp;nbsp;JsonSerializer.Deserialize&amp;lt;Model&amp;gt;(json,&amp;nbsp;jsonSerializerOptions);&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.2;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;font-size: 1.1em;font-weight: bold;margin: 2em 8px 0.75em 0px;padding-left: 8px;border-left: 3px solid rgb(15, 76, 129);color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__163&quot;&gt;字符串和值类型转换&lt;/h3&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__164&quot;&gt;很多情况下，会在模型类下使用数值类型，序列化到 json 时使用字符串。比如对应浮点型的数值，为了保证其准确性，我们会使用字符串形式保存到 json 中，这样可以避免传输时对浮点型处理而丢失其准确性。又比如前端处理超过 16 位数值时，数字会丢失精确度，16位数字存储毫秒格式的时间戳足够了，很多时候我们会使用分布式 id，雪花算法有很多种，其生成的 id 往往会超过 16 位。&lt;/p&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__165&quot;&gt;JS 中处理超过 16 位数字时，会出现很精确度丢失的问题：&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__166&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&lt;span style=&quot;color: #D19A66;&quot;&gt;console&lt;/span&gt;.&lt;span style=&quot;color: #61AEEE;&quot;&gt;log&lt;/span&gt;(&lt;span style=&quot;color: #D19A66;&quot;&gt;11111111111111111&lt;/span&gt;);&lt;br/&gt;输出:&amp;nbsp;&lt;span style=&quot;color: #D19A66;&quot;&gt;11111111111111112&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #D19A66;&quot;&gt;console&lt;/span&gt;.&lt;span style=&quot;color: #61AEEE;&quot;&gt;log&lt;/span&gt;(&lt;span style=&quot;color: #D19A66;&quot;&gt;111111111111111111&lt;/span&gt;);&lt;br/&gt;输出:&amp;nbsp;&lt;span style=&quot;color: #D19A66;&quot;&gt;111111111111111100&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__167&quot;&gt;有个最简单的方法是在 JsonSerializerOptions 中将所有数值字段转换为字符串：&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__168&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;new&lt;/span&gt;&amp;nbsp;JsonSerializerOptions&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;NumberHandling&amp;nbsp;=&amp;nbsp;JsonNumberHandling.AllowReadingFromString&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;};&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__169&quot;&gt;但是这样会导致所有值类型字段序列化为 json 时变成字符串，如果只需要处理几个字段而不是处理所有字段，那就需要我们自己编写类型转换器了。&lt;/p&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__170&quot;&gt;要实现字符串转数值，需要考虑很多种数值类型，如 byte、int、double、long 等，从值类型转换为字符串是很简单的，但是要实现一个字符串转任意类型值类型，那就很麻烦，这也是我们编写转换器的重点。&lt;/p&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__171&quot;&gt;编写 json 字符串和模型类值类型转换器的代码示例如下：&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__172&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #61AEEE;&quot;&gt;StringNumberConverter&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #61AEEE;&quot;&gt;T&lt;/span&gt;&amp;gt;:&lt;span style=&quot;color: #61AEEE;&quot;&gt;JsonConverter&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #61AEEE;&quot;&gt;T&lt;/span&gt;&amp;gt;&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;readonly&lt;/span&gt;TypeCode&amp;nbsp;typeCode&amp;nbsp;=Type.GetTypeCode(&lt;span style=&quot;color: #C678DD;&quot;&gt;typeof&lt;/span&gt;(T));&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__173&quot;&gt;// 从 json 中读取字符串，转换为对应的值类型&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;override&lt;/span&gt;&amp;nbsp;T&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;Read&lt;/span&gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&amp;nbsp;Utf8JsonReader&amp;nbsp;reader,&amp;nbsp;Type&amp;nbsp;typeToConvert,&amp;nbsp;JsonSerializerOptions&amp;nbsp;options)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;switch&lt;/span&gt;(reader.TokenType)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;JsonTokenType.Number:&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(typeCode&amp;nbsp;==TypeCode.Int32)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(reader.TryGetInt32(&lt;span style=&quot;color: #C678DD;&quot;&gt;out&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;))&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;Unsafe.As&amp;lt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;int&lt;/span&gt;,&amp;nbsp;T&amp;gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;);&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(typeCode&amp;nbsp;==TypeCode.Int64)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(reader.TryGetInt64(&lt;span style=&quot;color: #C678DD;&quot;&gt;out&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;))&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;Unsafe.As&amp;lt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;long&lt;/span&gt;,&amp;nbsp;T&amp;gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;);&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(typeCode&amp;nbsp;==TypeCode.Decimal)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(reader.TryGetDecimal(&lt;span style=&quot;color: #C678DD;&quot;&gt;out&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;))&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;Unsafe.As&amp;lt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;decimal&lt;/span&gt;,&amp;nbsp;T&amp;gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;);&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(typeCode&amp;nbsp;==TypeCode.Double)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(reader.TryGetDouble(&lt;span style=&quot;color: #C678DD;&quot;&gt;out&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;))&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;Unsafe.As&amp;lt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;double&lt;/span&gt;,&amp;nbsp;T&amp;gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;);&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(typeCode&amp;nbsp;==TypeCode.Single)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(reader.TryGetSingle(&lt;span style=&quot;color: #C678DD;&quot;&gt;out&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;))&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;Unsafe.As&amp;lt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;float&lt;/span&gt;,&amp;nbsp;T&amp;gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;);&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(typeCode&amp;nbsp;==TypeCode.Byte)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(reader.TryGetByte(&lt;span style=&quot;color: #C678DD;&quot;&gt;out&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;))&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;Unsafe.As&amp;lt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;byte&lt;/span&gt;,&amp;nbsp;T&amp;gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;);&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(typeCode&amp;nbsp;==TypeCode.SByte)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(reader.TryGetSByte(&lt;span style=&quot;color: #C678DD;&quot;&gt;out&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;))&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;Unsafe.As&amp;lt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;sbyte&lt;/span&gt;,&amp;nbsp;T&amp;gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;);&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(typeCode&amp;nbsp;==TypeCode.Int16)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(reader.TryGetInt16(&lt;span style=&quot;color: #C678DD;&quot;&gt;out&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;))&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;Unsafe.As&amp;lt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;short&lt;/span&gt;,&amp;nbsp;T&amp;gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;);&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(typeCode&amp;nbsp;==TypeCode.UInt16)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(reader.TryGetUInt16(&lt;span style=&quot;color: #C678DD;&quot;&gt;out&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;))&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;Unsafe.As&amp;lt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;ushort&lt;/span&gt;,&amp;nbsp;T&amp;gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;);&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(typeCode&amp;nbsp;==TypeCode.UInt32)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(reader.TryGetUInt32(&lt;span style=&quot;color: #C678DD;&quot;&gt;out&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;))&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;Unsafe.As&amp;lt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;uint&lt;/span&gt;,&amp;nbsp;T&amp;gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;);&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(typeCode&amp;nbsp;==TypeCode.UInt64)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(reader.TryGetUInt64(&lt;span style=&quot;color: #C678DD;&quot;&gt;out&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;))&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;Unsafe.As&amp;lt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;ulong&lt;/span&gt;,&amp;nbsp;T&amp;gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;);&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;break&lt;/span&gt;;&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;JsonTokenType.String:&lt;br/&gt;IConvertible&amp;nbsp;str&amp;nbsp;=&amp;nbsp;reader.GetString()??&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;(T)str.ToType(&lt;span style=&quot;color: #C678DD;&quot;&gt;typeof&lt;/span&gt;(T),&lt;span style=&quot;color: #56B6C2;&quot;&gt;null&lt;/span&gt;);&lt;br/&gt;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;throw&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;new&lt;/span&gt;NotSupportedException(&lt;span style=&quot;color: #98C379;&quot;&gt;$&amp;quot;无法将&lt;span style=&quot;color: #E06C75;&quot;&gt;{reader.TokenType}&lt;/span&gt;转换为&lt;span style=&quot;color: #E06C75;&quot;&gt;{typeToConvert}&lt;/span&gt;&amp;quot;&lt;/span&gt;);&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__174&quot;&gt;// 将值类型转换为 json 字符串&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;override&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;void&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;Write&lt;/span&gt;(Utf8JsonWriter&amp;nbsp;writer,&amp;nbsp;T&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;,&amp;nbsp;JsonSerializerOptions&amp;nbsp;options)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;switch&lt;/span&gt;(typeCode)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;TypeCode.Int32:&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; writer.WriteNumberValue(Unsafe.As&amp;lt;T,&lt;span style=&quot;color: #E6C07B;&quot;&gt;int&lt;/span&gt;&amp;gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;));&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;break&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;TypeCode.UInt32:&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; writer.WriteNumberValue(Unsafe.As&amp;lt;T,&lt;span style=&quot;color: #E6C07B;&quot;&gt;uint&lt;/span&gt;&amp;gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;));&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;break&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;TypeCode.Decimal:&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; writer.WriteNumberValue(Unsafe.As&amp;lt;T,&lt;span style=&quot;color: #E6C07B;&quot;&gt;decimal&lt;/span&gt;&amp;gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;));&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;break&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;TypeCode.Double:&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; writer.WriteNumberValue(Unsafe.As&amp;lt;T,&lt;span style=&quot;color: #E6C07B;&quot;&gt;double&lt;/span&gt;&amp;gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;));&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;break&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;TypeCode.Single:&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; writer.WriteNumberValue(Unsafe.As&amp;lt;T,&lt;span style=&quot;color: #E6C07B;&quot;&gt;uint&lt;/span&gt;&amp;gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;));&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;break&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;TypeCode.UInt64:&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; writer.WriteNumberValue(Unsafe.As&amp;lt;T,&lt;span style=&quot;color: #E6C07B;&quot;&gt;ulong&lt;/span&gt;&amp;gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;));&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;break&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;TypeCode.Int64:&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; writer.WriteNumberValue(Unsafe.As&amp;lt;T,&lt;span style=&quot;color: #E6C07B;&quot;&gt;long&lt;/span&gt;&amp;gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;));&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;break&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;TypeCode.Int16:&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; writer.WriteNumberValue(Unsafe.As&amp;lt;T,&lt;span style=&quot;color: #E6C07B;&quot;&gt;short&lt;/span&gt;&amp;gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;));&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;break&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;TypeCode.UInt16:&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; writer.WriteNumberValue(Unsafe.As&amp;lt;T,&lt;span style=&quot;color: #E6C07B;&quot;&gt;ushort&lt;/span&gt;&amp;gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;));&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;break&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;TypeCode.Byte:&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; writer.WriteNumberValue(Unsafe.As&amp;lt;T,&lt;span style=&quot;color: #E6C07B;&quot;&gt;byte&lt;/span&gt;&amp;gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;));&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;break&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;TypeCode.SByte:&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; writer.WriteNumberValue(Unsafe.As&amp;lt;T,&lt;span style=&quot;color: #E6C07B;&quot;&gt;sbyte&lt;/span&gt;&amp;gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;));&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;break&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #56B6C2;&quot;&gt;default&lt;/span&gt;:&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;throw&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;new&lt;/span&gt;NotSupportedException(&lt;span style=&quot;color: #98C379;&quot;&gt;$&amp;quot;不支持非数字类型&lt;span style=&quot;color: #E06C75;&quot;&gt;{&lt;span style=&quot;color: #C678DD;&quot;&gt;typeof&lt;/span&gt;(T)}&lt;/span&gt;&amp;quot;&lt;/span&gt;);&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__175&quot;&gt;编写字符串转换为各种类型的值类型，主要有一个难点泛型转换，我们使用&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__176&quot;&gt;reader.TryGetInt32()&lt;/code&gt;&amp;nbsp;读取 int 值之后，明明知道泛型 T 是 int，但是我们却不能直接返回 int ，我们必须要有一个手段可以将值转换为泛型 T。如果使用反射，会带来很大的性能消耗，还可能伴随着装箱拆箱，所以这里使用了&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__177&quot;&gt;Unsafe.As&lt;/code&gt;&amp;nbsp;，其作用是将转换类型的指针，使得相关的值类型可以转换为泛型 T。&lt;/p&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__178&quot;&gt;实现字符串和值类型转换器之后，接着实现转换工厂：&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__179&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #61AEEE;&quot;&gt;JsonStringToNumberConverter&lt;/span&gt;:&lt;span style=&quot;color: #61AEEE;&quot;&gt;JsonConverterFactory&lt;/span&gt;&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;static&lt;/span&gt;JsonStringToNumberConverterDefault{&lt;span style=&quot;color: #C678DD;&quot;&gt;get&lt;/span&gt;;}=&lt;span style=&quot;color: #C678DD;&quot;&gt;new&lt;/span&gt;JsonStringToNumberConverter();&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;override&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #E6C07B;&quot;&gt;bool&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;CanConvert&lt;/span&gt;(Type&amp;nbsp;typeToConvert)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;typeCode&amp;nbsp;=Type.GetTypeCode(typeToConvert);&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;&amp;nbsp;typeCode&amp;nbsp;==TypeCode.Int32||&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; typeCode&amp;nbsp;==TypeCode.Decimal||&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; typeCode&amp;nbsp;==TypeCode.Double||&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; typeCode&amp;nbsp;==TypeCode.Single||&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; typeCode&amp;nbsp;==TypeCode.Int64||&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; typeCode&amp;nbsp;==TypeCode.Int16||&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; typeCode&amp;nbsp;==TypeCode.Byte||&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; typeCode&amp;nbsp;==TypeCode.UInt32||&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; typeCode&amp;nbsp;==TypeCode.UInt64||&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; typeCode&amp;nbsp;==TypeCode.UInt16||&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; typeCode&amp;nbsp;==TypeCode.SByte;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;override&lt;/span&gt;&amp;nbsp;JsonConverter&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;CreateConverter&lt;/span&gt;(Type&amp;nbsp;typeToConvert,&amp;nbsp;JsonSerializerOptions&amp;nbsp;options)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;type&amp;nbsp;=&lt;span style=&quot;color: #C678DD;&quot;&gt;typeof&lt;/span&gt;(StringNumberConverter&amp;lt;&amp;gt;).MakeGenericType(typeToConvert);&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;converter&amp;nbsp;=Activator.CreateInstance(type);&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(converter&amp;nbsp;==&lt;span style=&quot;color: #56B6C2;&quot;&gt;null&lt;/span&gt;)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;throw&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;new&lt;/span&gt;InvalidOperationException(&lt;span style=&quot;color: #98C379;&quot;&gt;$&amp;quot;无法创建&amp;nbsp;&lt;span style=&quot;color: #E06C75;&quot;&gt;{type.Name}&lt;/span&gt;&amp;nbsp;类型的转换器&amp;quot;&lt;/span&gt;);&lt;br/&gt;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;(JsonConverter)converter;&lt;br/&gt;}&lt;br/&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.2;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;font-size: 1.1em;font-weight: bold;margin: 2em 8px 0.75em 0px;padding-left: 8px;border-left: 3px solid rgb(15, 76, 129);color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__180&quot;&gt;时间类型转换器&lt;/h3&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__181&quot;&gt;json 中规定了标准的时间格式，部分常用时间格式如下：&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__182&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;YYYY-MM-DDTHH:mm:ss.sssZ&lt;br/&gt;YYYY-MM-DDTHH:mm:ss.sss+HH:mm&lt;br/&gt;YYYY-MM-DDTHH:mm:ss.sss-HH:mm&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__183&quot;&gt;示例：&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__184&quot;&gt;2023-08-15T20:20:00+08:00&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__185&quot;&gt;但是在项目开发中，我们很多使用需要使用定制的格式，如&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__186&quot;&gt;2023-02-15 20:20:20&lt;/code&gt;&amp;nbsp;，那么就需要自行编写转换器，以便能够正确序列化或反序列化时间字段。&lt;/p&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__187&quot;&gt;在 C# 中有一个指定 DateTtime 如何解析字符串时间的接口，即&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__188&quot;&gt;DateTime.ParseExact(String, String, IFormatProvider)&lt;/code&gt;，为了能够适应各种字符串时间格式，我们可以利用该接口将字符串转换为时间。&lt;/p&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__189&quot;&gt;编写 json 字符串时间与 DateTime 互转的代码示例如下：&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__190&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #61AEEE;&quot;&gt;CustomDateTimeConverter&lt;/span&gt;:&lt;span style=&quot;color: #61AEEE;&quot;&gt;JsonConverter&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #61AEEE;&quot;&gt;DateTime&lt;/span&gt;&amp;gt;&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;readonly&lt;/span&gt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;string&lt;/span&gt;&amp;nbsp;_format;&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__191&quot;&gt;// format 参数是时间的字符串格式&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;CustomDateTimeConverter&lt;/span&gt;(&lt;span style=&quot;color: #E6C07B;&quot;&gt;string&lt;/span&gt;&amp;nbsp;format)&lt;br/&gt;{&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _format&amp;nbsp;=&amp;nbsp;format;&lt;br/&gt;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;override&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;void&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;Write&lt;/span&gt;(Utf8JsonWriter&amp;nbsp;writer,&amp;nbsp;DateTime&amp;nbsp;date,&amp;nbsp;JsonSerializerOptions&amp;nbsp;options)&lt;br/&gt;{&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; writer.WriteStringValue(date.ToString(_format));&lt;br/&gt;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;override&lt;/span&gt;&amp;nbsp;DateTime&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;Read&lt;/span&gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&amp;nbsp;Utf8JsonReader&amp;nbsp;reader,&amp;nbsp;Type&amp;nbsp;typeToConvert,&amp;nbsp;JsonSerializerOptions&amp;nbsp;options)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;=&amp;nbsp;reader.GetString()??&lt;span style=&quot;color: #C678DD;&quot;&gt;throw&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;new&lt;/span&gt;FormatException(&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;当前字段格式错误&amp;quot;&lt;/span&gt;);&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;DateTime.ParseExact(&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;,&amp;nbsp;_format,&lt;span style=&quot;color: #56B6C2;&quot;&gt;null&lt;/span&gt;);&lt;br/&gt;}&lt;br/&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__192&quot;&gt;转换器中不需要判断 json 字符串时间的各种，而是在使用时指定格式在构造函数中注入。使用示例：&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__193&quot;&gt;jsonSerializerOptions.Converters.Add(new&amp;nbsp;CustomDateTimeConverter(&amp;quot;yyyy/MM/dd&amp;nbsp;HH:mm:ss&amp;quot;));&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__194&quot;&gt;其实，使用默认的 json 时间格式是一个很好的习惯。据笔者经验，在项目中修改默认的 json 时间格式，在后期项目开发和对接中，很有可能出现序列化问题。如果某些地方需要更高精细度，如需要毫秒、使用转换为时间戳、第三方系统对接需要特殊格式等，可以在需要的模型类上使用特性标记对应的时间转换器格式，最好不要全局修改 json 时间格式。&lt;/p&gt;&lt;h2 style=&quot;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: center;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;font-size: 1.2em;font-weight: bold;display: table;margin: 4em auto 2em;padding: 0px 0.2em;background: rgb(15, 76, 129);color: rgb(255, 255, 255);&quot;&gt;从底层处理 JSON&lt;/h2&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__195&quot;&gt;在本节中，笔者将会介绍如何使用 Utf8JsonReader 高性能地解析 json 文件，然后编写对 Utf8JsonReader 的性能测试，通过相关的示例让读者掌握 Utf8JsonReader 的使用，以及如何对代码进行性能测试。&lt;/p&gt;&lt;h3 style=&quot;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.2;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;font-size: 1.1em;font-weight: bold;margin: 2em 8px 0.75em 0px;padding-left: 8px;border-left: 3px solid rgb(15, 76, 129);color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__196&quot;&gt;Utf8JsonReader&lt;/h3&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__197&quot;&gt;Utf8JsonReader 和 Utf8JsonWriter 是 C# 中读取写入 json 的高性能 API，通过 Utf8JsonReader 和 Utf8JsonWriter 我们可以逐步读取 json 或写入 json。&lt;/p&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__198&quot;&gt;Utf8JsonReader 使用比较广泛，例如官方的 JsonConfigurationProvider 便是使用 Utf8JsonReader 逐步读取 json 文件，生成 key/value 结构，而在后面的章节中，笔者也会介绍如何利用 Utf8JsonReader 实现 i18n 多语言的配置。由于 Utf8JsonReader 的使用最广泛，而 Utf8JsonWriter 并不常见，所以笔者只介绍 Utf8JsonReader 的使用方法。&lt;/p&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__199&quot;&gt;Utf8JsonReader 和 Utf8JsonWriter 都是结构体，其定义如下：&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__200&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;struct&lt;/span&gt;&amp;nbsp;Utf8JsonReader&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;struct&lt;/span&gt;&amp;nbsp;Utf8JsonWriter&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__201&quot;&gt;由于其是 ref 结构体，因此使用上有较多限制，例如不能在异步中使用，不能作为类型参数在数组、&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__202&quot;&gt;List&amp;lt;&amp;gt;&lt;/code&gt;、字典等中使用，只能被放到&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__203&quot;&gt;ref struct&lt;/code&gt;&amp;nbsp;类型中当作字段或属性，或在函数参数中使用。使用 Utf8JsonReader 读取 json 时，开发者需要自行处理闭合括号&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__204&quot;&gt;{}&lt;/code&gt;、&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__205&quot;&gt;[]&lt;/code&gt;&amp;nbsp;等，也需要自行判断处理 json 类型，因此读取过程也稍为复杂 。&lt;/p&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__206&quot;&gt;下面，笔者来设定一个场景，就是使用 Utf8JsonReader 来实现读取 json 文件，将读取到的字段全都存到字典中，如果有多层结构，则使用&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__207&quot;&gt;:&lt;/code&gt;&amp;nbsp;拼接层级，生成 IConfiguration 中的能够直接读取的 key/value 格式。 比如：&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__208&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__209&quot;&gt;//&amp;nbsp;json&lt;/span&gt;&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #D19A66;&quot;&gt;&amp;quot;A&amp;quot;&lt;/span&gt;:{&lt;br/&gt;&lt;span style=&quot;color: #D19A66;&quot;&gt;&amp;quot;B&amp;quot;&lt;/span&gt;:&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;test&amp;quot;&lt;/span&gt;&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__210&quot;&gt;//&amp;nbsp;C#&lt;/span&gt;&lt;br/&gt;new&amp;nbsp;Dictionary&amp;lt;string,&amp;nbsp;string&amp;gt;()&lt;br/&gt;{&lt;br/&gt;{&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;A:B&amp;quot;&lt;/span&gt;,&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;test&amp;quot;&lt;/span&gt;}&lt;br/&gt;};&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__211&quot;&gt;新建一个静态类 ReadJsonHelper，在这个类型中编写解析 json 的代码。&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__212&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;class&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;ReadJsonHelper&lt;/span&gt;&lt;br/&gt;{&lt;br/&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__213&quot;&gt;首先是读取字段值的代码，当从 json 读取字段时，如果字段不是对象或数组类型，则直接读取其值即可。&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__214&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__215&quot;&gt;// 读取字段值&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;object&lt;/span&gt;?ReadObject(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;Utf8JsonReader&amp;nbsp;reader)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;switch&lt;/span&gt;(reader.TokenType)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;JsonTokenType.Null&lt;span style=&quot;color: #C678DD;&quot;&gt;or&lt;/span&gt;JsonTokenType.None:&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #56B6C2;&quot;&gt;null&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;JsonTokenType.False:&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;&amp;nbsp;reader.GetBoolean();&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;JsonTokenType.True:&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;&amp;nbsp;reader.GetBoolean();&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;JsonTokenType.Number:&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;&amp;nbsp;reader.GetDouble();&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;JsonTokenType.String:&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;&amp;nbsp;reader.GetString()??&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #56B6C2;&quot;&gt;default&lt;/span&gt;:&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #56B6C2;&quot;&gt;null&lt;/span&gt;;&lt;br/&gt;}&lt;br/&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__216&quot;&gt;读取 json 字段时，我们会碰到复杂的嵌套结构，因此需要判断当前读取的是对象还是数组，而且两者可以相互嵌套，这就增加了我们的解析难度。&lt;/p&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__217&quot;&gt;比如：&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__218&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;{&lt;br/&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;...&amp;nbsp;...&lt;br/&gt;}&lt;br/&gt;[...&amp;nbsp;...]&lt;br/&gt;[{...},&amp;nbsp;{...}&amp;nbsp;...]&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__219&quot;&gt;第一步是判断一个 json 的根结构是&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__220&quot;&gt;{}&lt;/code&gt;&amp;nbsp;还是&amp;nbsp;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__221&quot;&gt;[]&lt;/code&gt;，然后逐步解析。&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__222&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__223&quot;&gt;// 解析 json 对象&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;void&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;BuildJsonField&lt;/span&gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&amp;nbsp;Utf8JsonReader&amp;nbsp;reader,&amp;nbsp;&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Dictionary&amp;lt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;string&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #E6C07B;&quot;&gt;object&lt;/span&gt;&amp;gt;&amp;nbsp;map,&amp;nbsp;&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #E6C07B;&quot;&gt;string&lt;/span&gt;?&amp;nbsp;baseKey)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;while&lt;/span&gt;(reader.Read())&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__224&quot;&gt;// 顶级数组 &amp;quot;[123,123]&amp;quot;&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(reader.TokenType&lt;span style=&quot;color: #C678DD;&quot;&gt;is&lt;/span&gt;JsonTokenType.StartArray)&lt;br/&gt;{&lt;br/&gt;ParseArray(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&amp;nbsp;reader,&amp;nbsp;map,&amp;nbsp;baseKey);&lt;br/&gt;}&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__225&quot;&gt;// 碰到 } 符号&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(reader.TokenType&lt;span style=&quot;color: #C678DD;&quot;&gt;is&lt;/span&gt;JsonTokenType.EndObject)&lt;span style=&quot;color: #C678DD;&quot;&gt;break&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__226&quot;&gt;// 碰到字段&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(reader.TokenType&lt;span style=&quot;color: #C678DD;&quot;&gt;is&lt;/span&gt;JsonTokenType.PropertyName)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;key&amp;nbsp;=&amp;nbsp;reader.GetString()!;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;newkey&amp;nbsp;=&amp;nbsp;baseKey&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;is&lt;/span&gt;&lt;span style=&quot;color: #56B6C2;&quot;&gt;null&lt;/span&gt;?&amp;nbsp;key&amp;nbsp;:&lt;span style=&quot;color: #98C379;&quot;&gt;$&amp;quot;&lt;span style=&quot;color: #E06C75;&quot;&gt;{baseKey}&lt;/span&gt;:&lt;span style=&quot;color: #E06C75;&quot;&gt;{key}&lt;/span&gt;&amp;quot;&lt;/span&gt;;&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__227&quot;&gt;// 判断字段是否为对象&lt;/span&gt;&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reader.Read();&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(reader.TokenType&lt;span style=&quot;color: #C678DD;&quot;&gt;is&lt;/span&gt;JsonTokenType.StartArray)&lt;br/&gt;{&lt;br/&gt;ParseArray(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&amp;nbsp;reader,&amp;nbsp;map,&amp;nbsp;newkey);&lt;br/&gt;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(reader.TokenType&lt;span style=&quot;color: #C678DD;&quot;&gt;is&lt;/span&gt;JsonTokenType.StartObject)&lt;br/&gt;{&lt;br/&gt;BuildJsonField(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&amp;nbsp;reader,&amp;nbsp;map,&amp;nbsp;newkey);&lt;br/&gt;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;else&lt;/span&gt;&lt;br/&gt;{&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; map[newkey]=ReadObject(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&amp;nbsp;reader);&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__228&quot;&gt;json 数组有很多种情况，json 数组的元素可以是任意类型，因此处理起来稍微麻烦，所以针对数组类型，我们还应该支持解析元素，使用序号来访问对应位置的元素。&lt;/p&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__229&quot;&gt;解析数组：&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__230&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__231&quot;&gt;// 解析数组&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;void&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;ParseArray&lt;/span&gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&amp;nbsp;Utf8JsonReader&amp;nbsp;reader,&amp;nbsp;Dictionary&amp;lt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;string&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #E6C07B;&quot;&gt;object&lt;/span&gt;&amp;gt;&amp;nbsp;map,&amp;nbsp;&lt;span style=&quot;color: #E6C07B;&quot;&gt;string&lt;/span&gt;?&amp;nbsp;baseKey)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;int&lt;/span&gt;&amp;nbsp;i&amp;nbsp;=&lt;span style=&quot;color: #D19A66;&quot;&gt;0&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;while&lt;/span&gt;(reader.Read())&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(reader.TokenType&lt;span style=&quot;color: #C678DD;&quot;&gt;is&lt;/span&gt;JsonTokenType.EndArray)&lt;span style=&quot;color: #C678DD;&quot;&gt;break&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;newkey&amp;nbsp;=&amp;nbsp;baseKey&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;is&lt;/span&gt;&lt;span style=&quot;color: #56B6C2;&quot;&gt;null&lt;/span&gt;?&lt;span style=&quot;color: #98C379;&quot;&gt;$&amp;quot;[&lt;span style=&quot;color: #E06C75;&quot;&gt;{i}&lt;/span&gt;]&amp;quot;&lt;/span&gt;:&lt;span style=&quot;color: #98C379;&quot;&gt;$&amp;quot;&lt;span style=&quot;color: #E06C75;&quot;&gt;{baseKey}&lt;/span&gt;[&lt;span style=&quot;color: #E06C75;&quot;&gt;{i}&lt;/span&gt;]&amp;quot;&lt;/span&gt;;&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; i++;&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;switch&lt;/span&gt;(reader.TokenType)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__232&quot;&gt;// [...,null,...]&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;JsonTokenType.Null:&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; map[newkey]=&lt;span style=&quot;color: #56B6C2;&quot;&gt;null&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;break&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__233&quot;&gt;// [...,123.666,...]&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;JsonTokenType.Number:&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; map[newkey]=&amp;nbsp;reader.GetDouble();&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;break&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__234&quot;&gt;// [...,&amp;quot;123&amp;quot;,...]&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;JsonTokenType.String:&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; map[newkey]=&amp;nbsp;reader.GetString();&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;break&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__235&quot;&gt;// [...,true,...]&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;JsonTokenType.True:&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; map[newkey]=&amp;nbsp;reader.GetBoolean();&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;break&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;JsonTokenType.False:&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; map[newkey]=&amp;nbsp;reader.GetBoolean();&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;break&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__236&quot;&gt;// [...,{...},...]&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;JsonTokenType.StartObject:&lt;br/&gt;BuildJsonField(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&amp;nbsp;reader,&amp;nbsp;map,&amp;nbsp;newkey);&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;break&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__237&quot;&gt;// [...,[],...]&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;JsonTokenType.StartArray:&lt;br/&gt;ParseArray(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&amp;nbsp;reader,&amp;nbsp;map,&amp;nbsp;newkey);&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;break&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #56B6C2;&quot;&gt;default&lt;/span&gt;:&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; map[newkey]=JsonValueKind.Null;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;break&lt;/span&gt;;&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__238&quot;&gt;最后，我们编写一个解析 json 的入口，通过用户传递的 json 文件，解析出字典。&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__239&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;static&lt;/span&gt;&amp;nbsp;Dictionary&amp;lt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;string&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #E6C07B;&quot;&gt;object&lt;/span&gt;&amp;gt;&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;Read&lt;/span&gt;(ReadOnlySequence&amp;lt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;byte&lt;/span&gt;&amp;gt;&amp;nbsp;sequence,&amp;nbsp;&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;JsonReaderOptions&amp;nbsp;jsonReaderOptions)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;reader&amp;nbsp;=&lt;span style=&quot;color: #C678DD;&quot;&gt;new&lt;/span&gt;Utf8JsonReader(sequence,&amp;nbsp;jsonReaderOptions);&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;map&amp;nbsp;=&lt;span style=&quot;color: #C678DD;&quot;&gt;new&lt;/span&gt;Dictionary&amp;lt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;string&lt;/span&gt;,&lt;span style=&quot;color: #E6C07B;&quot;&gt;object&lt;/span&gt;&amp;gt;();&lt;br/&gt;BuildJsonField(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&amp;nbsp;reader,&amp;nbsp;map,&lt;span style=&quot;color: #56B6C2;&quot;&gt;null&lt;/span&gt;);&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;return&lt;/span&gt;&amp;nbsp;map;&lt;br/&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__240&quot;&gt;JsonReaderOptions 用于配置 Utf8JsonReader 读取策略，其主要属性如下：&lt;/p&gt;&lt;p&gt;&lt;section style=&quot;color: rgb(0, 0, 0);font-family: &amp;quot;Noto Sans SC&amp;quot;;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;padding: 0px 8px;&quot; class=&quot;js_darkmode__241&quot;&gt;&lt;table&gt;&lt;thead&gt;&lt;tr class=&quot;firstRow&quot;&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__242&quot;&gt;&lt;section&gt;属性&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__243&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__244&quot;&gt;&lt;section&gt;说明&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__245&quot;&gt;&lt;section&gt;AllowTrailingCommas&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__246&quot;&gt;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__247&quot;&gt;bool&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__248&quot;&gt;&lt;section&gt;是否允许（和忽略）对象或数组成员末尾多余的逗号&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__249&quot;&gt;&lt;section&gt;CommentHandling&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__250&quot;&gt;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__251&quot;&gt;JsonCommentHandling&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__252&quot;&gt;&lt;section&gt;如何处理 JSON 注释&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__253&quot;&gt;&lt;section&gt;MaxDepth&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__254&quot;&gt;&lt;code style=&quot;text-align: left;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;word-break: break-all;&quot; class=&quot;js_darkmode__255&quot;&gt;int&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__256&quot;&gt;&lt;section&gt;最大嵌套深度，默认最大 64 层&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__257&quot;&gt;读取文件生成字典示例：&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__258&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__259&quot;&gt;// 注意，不能直接 File.ReadAllBytes() 读取文件，因为文件有 bom 头&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;text&amp;nbsp;=&amp;nbsp;Encoding.UTF8.GetBytes(File.ReadAllText(&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;read.json&amp;quot;&lt;/span&gt;));&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;dic&amp;nbsp;=&amp;nbsp;ReadJsonHelper.Read(&lt;span style=&quot;color: #C678DD;&quot;&gt;new&lt;/span&gt;&amp;nbsp;ReadOnlySequence&amp;lt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;byte&lt;/span&gt;&amp;gt;(text),&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;new&lt;/span&gt;&amp;nbsp;JsonReaderOptions&amp;nbsp;{&amp;nbsp;AllowTrailingCommas&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color: #56B6C2;&quot;&gt;true&lt;/span&gt;&amp;nbsp;});&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__260&quot;&gt;在 Demo4.Console 示例项目中，有一个 read.json 文件，其内容较为复杂，可以使用这个 json 验证代码。&lt;/p&gt;&lt;p&gt;&lt;figure style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__261&quot;&gt;&lt;img alt=&quot;image-20230306074822419&quot; class=&quot;rich_pages wxw-img&quot; data-aistatus=&quot;1&quot; data-imgfileid=&quot;100004041&quot; data-src=&quot;https://mmbiz.qpic.cn/mmbiz_png/8h2Txmjyrpu58wmPmj77mUKuIibGfib4EGD76MgVMyLYhc0ibpdmIlvs0ytx3VUumlrFN478hK4FOGtgLVlsQwyRHzLuv2SQbqicVkXhZRniamYQ/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=0&quot; data-type=&quot;png&quot; style=&quot;text-align: left; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; border-radius: 4px; display: block; margin: 0.1em auto 0.5em; height: auto !important; visibility: visible !important; width: 231px !important;&quot; title=&quot;null&quot; data-original-style=&quot;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;font-size: 14px;border-radius: 4px;display: block;margin: 0.1em auto 0.5em;&quot; data-index=&quot;4&quot; data-ratio=&quot;0.5800865800865801&quot; data-w=&quot;231&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_png/8h2Txmjyrpu58wmPmj77mUKuIibGfib4EGD76MgVMyLYhc0ibpdmIlvs0ytx3VUumlrFN478hK4FOGtgLVlsQwyRHzLuv2SQbqicVkXhZRniamYQ/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=0&quot; _width=&quot;231px&quot; data-before-load-time=&quot;1776217770425&quot; data-report-img-idx=&quot;0&quot; data-fail=&quot;0&quot;/&gt;&lt;figcaption style=&quot;text-align: center;line-height: 1.75;color: rgb(136, 136, 136);font-size: 0.8em;&quot;&gt;image-20230306074822419&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__262&quot;&gt;另外我们可以利用 Utf8JsonReader ，结合第三章中的自定义配置教程，将 json 文件解析到 IConfiguration 中。&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__263&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;config&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;new&lt;/span&gt;&amp;nbsp;ConfigurationBuilder()&lt;br/&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;.AddInMemoryCollection(dic.ToDictionary(x&amp;nbsp;=&amp;gt;&amp;nbsp;x.Key,&amp;nbsp;x&amp;nbsp;=&amp;gt;&amp;nbsp;x.Value.ToString()))&lt;br/&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;.Build();&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.2;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;font-size: 1.1em;font-weight: bold;margin: 2em 8px 0.75em 0px;padding-left: 8px;border-left: 3px solid rgb(15, 76, 129);color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__264&quot;&gt;Utf8JsonReader 和 JsonNode 解析 JSON 性能测试&lt;/h3&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__265&quot;&gt;JsonNode 也是我们读取 json 常用的方法之一，在本节中，笔者会介绍如何使用 BenchmarkDotNet 编写性能测试，对比 Utf8JsonReader 和 JsonNode 读取 json 的性能。&lt;/p&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__266&quot;&gt;在 Demo4.Benchmark 示例项目中，有三个存储了大量对象数组的 json 文件，这些文件使用工具批量生成，我们将会使用这三个 json 进行性能测试。&lt;/p&gt;&lt;p&gt;&lt;figure style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__267&quot;&gt;&lt;img alt=&quot;img&quot; class=&quot;rich_pages wxw-img&quot; data-aistatus=&quot;1&quot; data-imgfileid=&quot;100004040&quot; data-src=&quot;https://mmbiz.qpic.cn/mmbiz_png/8h2Txmjyrps0tj2YXoB3I8foqXUiclXRCeFiaE3Z3ias1QniaOC8YPAst1nWCHRXJzAjBgIcc6u27rAROuuFSGic2qMuY2t1ibCn75n7iaDicAf99as/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=1&quot; data-type=&quot;png&quot; style=&quot;text-align: left; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; border-radius: 4px; display: block; margin: 0.1em auto 0.5em; height: auto !important; visibility: visible !important; width: 504px !important;&quot; title=&quot;null&quot; data-original-style=&quot;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;font-size: 14px;border-radius: 4px;display: block;margin: 0.1em auto 0.5em;&quot; data-index=&quot;5&quot; data-ratio=&quot;0.1461187214611872&quot; data-w=&quot;657&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_png/8h2Txmjyrps0tj2YXoB3I8foqXUiclXRCeFiaE3Z3ias1QniaOC8YPAst1nWCHRXJzAjBgIcc6u27rAROuuFSGic2qMuY2t1ibCn75n7iaDicAf99as/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=1&quot; _width=&quot;520px&quot; data-before-load-time=&quot;1776217770733&quot; data-report-img-idx=&quot;1&quot; data-fail=&quot;0&quot;/&gt;&lt;figcaption style=&quot;text-align: center;line-height: 1.75;color: rgb(136, 136, 136);font-size: 0.8em;&quot;&gt;img&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__268&quot;&gt;对象格式：&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__269&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&lt;span style=&quot;color: #D19A66;&quot;&gt;&amp;quot;a_tttttttttttt&amp;quot;&lt;/span&gt;:&lt;span style=&quot;color: #D19A66;&quot;&gt;1001&lt;/span&gt;,&lt;br/&gt;&lt;span style=&quot;color: #D19A66;&quot;&gt;&amp;quot;b_tttttttttttt&amp;quot;&lt;/span&gt;:&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;邱平&amp;quot;&lt;/span&gt;,&lt;br/&gt;&lt;span style=&quot;color: #D19A66;&quot;&gt;&amp;quot;c_tttttttttttt&amp;quot;&lt;/span&gt;:&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;Nancy Lee&amp;quot;&lt;/span&gt;,&lt;br/&gt;&lt;span style=&quot;color: #D19A66;&quot;&gt;&amp;quot;d_tttttttttttt&amp;quot;&lt;/span&gt;:&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;buqdu&amp;quot;&lt;/span&gt;,&lt;br/&gt;&lt;span style=&quot;color: #D19A66;&quot;&gt;&amp;quot;e_tttttttttttt&amp;quot;&lt;/span&gt;:&lt;span style=&quot;color: #D19A66;&quot;&gt;81.26&lt;/span&gt;,&lt;br/&gt;&lt;span style=&quot;color: #D19A66;&quot;&gt;&amp;quot;f_tttttttttttt&amp;quot;&lt;/span&gt;:&lt;span style=&quot;color: #D19A66;&quot;&gt;60&lt;/span&gt;,&lt;br/&gt;&lt;span style=&quot;color: #D19A66;&quot;&gt;&amp;quot;g_tttttttttttt&amp;quot;&lt;/span&gt;:&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;1990-04-18 10:52:59&amp;quot;&lt;/span&gt;,&lt;br/&gt;&lt;span style=&quot;color: #D19A66;&quot;&gt;&amp;quot;h_tttttttttttt&amp;quot;&lt;/span&gt;:&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;35812178&amp;quot;&lt;/span&gt;,&lt;br/&gt;&lt;span style=&quot;color: #D19A66;&quot;&gt;&amp;quot;i_tttttttttttt&amp;quot;&lt;/span&gt;:&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;18935330000&amp;quot;&lt;/span&gt;,&lt;br/&gt;&lt;span style=&quot;color: #D19A66;&quot;&gt;&amp;quot;j_tttttttttttt&amp;quot;&lt;/span&gt;:&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;w.nsliozye@mbwrxiyf.ug&amp;quot;&lt;/span&gt;,&lt;br/&gt;&lt;span style=&quot;color: #D19A66;&quot;&gt;&amp;quot;k_tttttttttttt&amp;quot;&lt;/span&gt;:&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;浙江省 金华市 兰溪市&amp;quot;&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;}&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__270&quot;&gt;首先安装 BenchmarkDotNet 框架，然后创建一个性能测试入口加载 json 文件。&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__271&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;[&lt;span style=&quot;color: #61AEEE;&quot;&gt;SimpleJob(RuntimeMoniker.Net80)&lt;/span&gt;]&lt;br/&gt;[&lt;span style=&quot;color: #61AEEE;&quot;&gt;SimpleJob(RuntimeMoniker.NativeAot80)&lt;/span&gt;]&lt;br/&gt;[&lt;span style=&quot;color: #61AEEE;&quot;&gt;MemoryDiagnoser&lt;/span&gt;]&lt;br/&gt;[&lt;span style=&quot;color: #61AEEE;&quot;&gt;ThreadingDiagnoser&lt;/span&gt;]&lt;br/&gt;[&lt;span style=&quot;color: #61AEEE;&quot;&gt;MarkdownExporter,&amp;nbsp;AsciiDocExporter,&amp;nbsp;HtmlExporter,&amp;nbsp;CsvExporter,&amp;nbsp;RPlotExporter&lt;/span&gt;]&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #61AEEE;&quot;&gt;ParseJson&lt;/span&gt;&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;private&lt;/span&gt;ReadOnlySequence&amp;lt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;byte&lt;/span&gt;&amp;gt;&amp;nbsp;sequence;&lt;br/&gt;&lt;br/&gt;[&lt;span style=&quot;color: #61AEEE;&quot;&gt;Params(&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;100.json&amp;quot;&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;1000.json&amp;quot;&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #98C379;&quot;&gt;&amp;quot;10000.json&amp;quot;&lt;/span&gt;)&lt;/span&gt;]&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;string&lt;/span&gt;FileName;&lt;br/&gt;&lt;br/&gt;[&lt;span style=&quot;color: #61AEEE;&quot;&gt;GlobalSetup&lt;/span&gt;]&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;async&lt;/span&gt;&amp;nbsp;Task&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;Setup&lt;/span&gt;()&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;text&amp;nbsp;=File.ReadAllText(Path.Combine(Environment.CurrentDirectory,&lt;span style=&quot;color: #98C379;&quot;&gt;$&amp;quot;json/&lt;span style=&quot;color: #E06C75;&quot;&gt;{FileName}&lt;/span&gt;&amp;quot;&lt;/span&gt;));&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;bytes&amp;nbsp;=Encoding.UTF8.GetBytes(text);&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sequence&amp;nbsp;=&lt;span style=&quot;color: #C678DD;&quot;&gt;new&lt;/span&gt;ReadOnlySequence&amp;lt;&lt;span style=&quot;color: #E6C07B;&quot;&gt;byte&lt;/span&gt;&amp;gt;(bytes);&lt;br/&gt;}&lt;br/&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__272&quot;&gt;在 ParseJson 中添加相关的方法，使用 Utf8JsonReader 解析 json :&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__273&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;[&lt;span style=&quot;color: #61AEEE;&quot;&gt;Benchmark&lt;/span&gt;]&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;void&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;Utf8JsonReader&lt;/span&gt;()&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;reader&amp;nbsp;=&lt;span style=&quot;color: #C678DD;&quot;&gt;new&lt;/span&gt;Utf8JsonReader(sequence,&lt;span style=&quot;color: #C678DD;&quot;&gt;new&lt;/span&gt;JsonReaderOptions());&lt;br/&gt;&amp;nbsp; &amp;nbsp; U8Read(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&amp;nbsp;reader);&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;void&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;U8Read&lt;/span&gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&amp;nbsp;Utf8JsonReader&amp;nbsp;reader)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;while&lt;/span&gt;(reader.Read())&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(reader.TokenType&lt;span style=&quot;color: #C678DD;&quot;&gt;is&lt;/span&gt;JsonTokenType.StartArray)&lt;br/&gt;{&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; U8ReadArray(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&amp;nbsp;reader);&lt;br/&gt;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(reader.TokenType&lt;span style=&quot;color: #C678DD;&quot;&gt;is&lt;/span&gt;JsonTokenType.EndObject)&lt;span style=&quot;color: #C678DD;&quot;&gt;break&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(reader.TokenType&lt;span style=&quot;color: #C678DD;&quot;&gt;is&lt;/span&gt;JsonTokenType.PropertyName)&lt;br/&gt;{&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reader.Read();&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(reader.TokenType&lt;span style=&quot;color: #C678DD;&quot;&gt;is&lt;/span&gt;JsonTokenType.StartArray)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__274&quot;&gt;// 进入数组处理&lt;/span&gt;&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; U8ReadArray(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&amp;nbsp;reader);&lt;br/&gt;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(reader.TokenType&lt;span style=&quot;color: #C678DD;&quot;&gt;is&lt;/span&gt;JsonTokenType.StartObject)&lt;br/&gt;{&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; U8Read(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&amp;nbsp;reader);&lt;br/&gt;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;else&lt;/span&gt;&lt;br/&gt;{&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;void&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;U8ReadArray&lt;/span&gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&amp;nbsp;Utf8JsonReader&amp;nbsp;reader)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;while&lt;/span&gt;(reader.Read())&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(reader.TokenType&lt;span style=&quot;color: #C678DD;&quot;&gt;is&lt;/span&gt;JsonTokenType.EndArray)&lt;span style=&quot;color: #C678DD;&quot;&gt;break&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;switch&lt;/span&gt;(reader.TokenType)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;JsonTokenType.StartObject:&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; U8Read(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&amp;nbsp;reader);&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;break&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: #5C6370;font-style: italic;&quot; class=&quot;js_darkmode__275&quot;&gt;// [...,[],...]&lt;/span&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;case&lt;/span&gt;JsonTokenType.StartArray:&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; U8ReadArray(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&amp;nbsp;reader);&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;break&lt;/span&gt;;&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__276&quot;&gt;在 ParseJson 中增加 JsonNode 解析 json 的代码：&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__277&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;[&lt;span style=&quot;color: #61AEEE;&quot;&gt;Benchmark&lt;/span&gt;]&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;void&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;JsonNode&lt;/span&gt;()&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;reader&amp;nbsp;=&lt;span style=&quot;color: #C678DD;&quot;&gt;new&lt;/span&gt;Utf8JsonReader(sequence,&lt;span style=&quot;color: #C678DD;&quot;&gt;new&lt;/span&gt;JsonReaderOptions());&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;nodes&amp;nbsp;=System.Text.Json.Nodes.JsonNode.Parse(&lt;span style=&quot;color: #C678DD;&quot;&gt;ref&lt;/span&gt;&amp;nbsp;reader,&lt;span style=&quot;color: #56B6C2;&quot;&gt;null&lt;/span&gt;);&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(nodes&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;is&lt;/span&gt;JsonObject&amp;nbsp;o)&lt;br/&gt;{&lt;br/&gt;JNRead(o);&lt;br/&gt;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(nodes&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;is&lt;/span&gt;JsonArray&amp;nbsp;a)&lt;br/&gt;{&lt;br/&gt;JNArray(a);&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;void&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;JNRead&lt;/span&gt;(JsonObject&amp;nbsp;obj)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;foreach&lt;/span&gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;item&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;in&lt;/span&gt;&amp;nbsp;obj)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;v&amp;nbsp;=&amp;nbsp;item.Value;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(v&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;is&lt;/span&gt;JsonObject&amp;nbsp;o)&lt;br/&gt;{&lt;br/&gt;JNRead(o);&lt;br/&gt;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(v&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;is&lt;/span&gt;JsonArray&amp;nbsp;a)&lt;br/&gt;{&lt;br/&gt;JNArray(a);&lt;br/&gt;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(v&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;is&lt;/span&gt;JsonValue&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;el&amp;nbsp;=&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;.GetValue&amp;lt;JsonElement&amp;gt;();&lt;br/&gt;JNValue(el);&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;void&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;JNArray&lt;/span&gt;(JsonArray&amp;nbsp;obj)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;foreach&lt;/span&gt;(&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;v&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;in&lt;/span&gt;&amp;nbsp;obj)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(v&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;is&lt;/span&gt;JsonObject&amp;nbsp;o)&lt;br/&gt;{&lt;br/&gt;JNRead(o);&lt;br/&gt;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(v&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;is&lt;/span&gt;JsonArray&amp;nbsp;a)&lt;br/&gt;{&lt;br/&gt;JNArray(a);&lt;br/&gt;}&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;if&lt;/span&gt;(v&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;is&lt;/span&gt;JsonValue&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;)&lt;br/&gt;{&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;el&amp;nbsp;=&lt;span style=&quot;color: #C678DD;&quot;&gt;value&lt;/span&gt;.GetValue&amp;lt;JsonElement&amp;gt;();&lt;br/&gt;JNValue(el);&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #C678DD;&quot;&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;void&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;JNValue&lt;/span&gt;(JsonElement&amp;nbsp;obj){}&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__278&quot;&gt;然后在 Main 方法中启动性能 Benchmark 框架进行测试。&lt;/p&gt;&lt;pre style=&quot;color: rgb(171, 178, 191);background: rgb(40, 44, 52);font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.5;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;padding: 0px !important;&quot; class=&quot;js_darkmode__279&quot;&gt;&lt;code style=&quot;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;display: -webkit-box;padding: 0.5em 1em 1em;overflow-x: auto;text-indent: 0px;text-align: left;line-height: 1.75;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;void&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #61AEEE;&quot;&gt;Main&lt;/span&gt;()&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #C678DD;&quot;&gt;var&lt;/span&gt;&amp;nbsp;summary&amp;nbsp;=&amp;nbsp;BenchmarkRunner.Run(&lt;span style=&quot;color: #C678DD;&quot;&gt;typeof&lt;/span&gt;(Program).Assembly);&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;Console.Read();&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__280&quot;&gt;以 Release 模式编译项目后，启动程序进行性能测试。&lt;/p&gt;&lt;blockquote style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;border-left: none;padding: 1em;border-radius: 8px;color: rgba(0, 0, 0, 0.5);background: rgb(247, 247, 247);margin: 2em 8px;&quot; class=&quot;js_darkmode__281&quot;&gt;&lt;p style=&quot;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;font-size: 1em;letter-spacing: 0.1em;color: rgb(80, 80, 80);display: block;&quot; class=&quot;js_darkmode__282&quot;&gt;笔者所用机器配置：&lt;/p&gt;&lt;p style=&quot;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;font-size: 1em;letter-spacing: 0.1em;color: rgb(80, 80, 80);display: block;&quot; class=&quot;js_darkmode__283&quot;&gt;&lt;code style=&quot;text-align: left;line-height: 1.75;font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace;font-size: 14px;margin: 0px;white-space: nowrap;&quot;&gt;AMD&amp;nbsp;Ryzen&amp;nbsp;5&amp;nbsp;5600G&amp;nbsp;with&amp;nbsp;Radeon&amp;nbsp;Graphics,&amp;nbsp;1&amp;nbsp;CPU,&amp;nbsp;12&amp;nbsp;logical&amp;nbsp;and&amp;nbsp;6&amp;nbsp;physical cores&lt;/code&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75;font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__284&quot;&gt;可以看到两者的性能差异比较大，所以在需要高性能的场景下，我们使用 Utf8JsonReader 的性能会高一点，还可以降低内存的使用量。&lt;/p&gt;&lt;p&gt;&lt;section style=&quot;color: rgb(0, 0, 0);font-family: &amp;quot;Noto Sans SC&amp;quot;;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;padding: 0px 8px;&quot; class=&quot;js_darkmode__285&quot;&gt;&lt;table&gt;&lt;thead&gt;&lt;tr class=&quot;firstRow&quot;&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__286&quot;&gt;&lt;section&gt;Method&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__287&quot;&gt;&lt;section&gt;Job&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__288&quot;&gt;&lt;section&gt;FileName&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__289&quot;&gt;&lt;section&gt;Mean&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__290&quot;&gt;&lt;section&gt;Gen0&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__291&quot;&gt;&lt;section&gt;Gen1&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__292&quot;&gt;&lt;section&gt;Gen2&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__293&quot;&gt;&lt;section&gt;Allocated&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__294&quot;&gt;&lt;section&gt;Utf8JsonReader&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__295&quot;&gt;&lt;section&gt;.NET 8.0&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__296&quot;&gt;&lt;section&gt;100.json&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__297&quot;&gt;&lt;section&gt;42.87 us&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__298&quot;&gt;&lt;section&gt;-&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__299&quot;&gt;&lt;section&gt;-&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__300&quot;&gt;&lt;section&gt;-&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__301&quot;&gt;&lt;section&gt;-&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__302&quot;&gt;&lt;section&gt;JsonNode&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__303&quot;&gt;&lt;section&gt;.NET 8.0&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__304&quot;&gt;&lt;section&gt;100.json&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__305&quot;&gt;&lt;section&gt;237.57 us&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__306&quot;&gt;&lt;section&gt;37.1094&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__307&quot;&gt;&lt;section&gt;24.4141&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__308&quot;&gt;&lt;section&gt;-&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__309&quot;&gt;&lt;section&gt;312624 B&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__310&quot;&gt;&lt;section&gt;Utf8JsonReader&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__311&quot;&gt;&lt;section&gt;NativeAOT 8.0&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__312&quot;&gt;&lt;section&gt;100.json&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__313&quot;&gt;&lt;section&gt;49.81 us&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__314&quot;&gt;&lt;section&gt;-&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__315&quot;&gt;&lt;section&gt;-&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__316&quot;&gt;&lt;section&gt;-&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__317&quot;&gt;&lt;section&gt;-&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__318&quot;&gt;&lt;section&gt;JsonNode&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__319&quot;&gt;&lt;section&gt;NativeAOT 8.0&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__320&quot;&gt;&lt;section&gt;100.json&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__321&quot;&gt;&lt;section&gt;301.11 us&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__322&quot;&gt;&lt;section&gt;37.1094&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__323&quot;&gt;&lt;section&gt;24.4141&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__324&quot;&gt;&lt;section&gt;-&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__325&quot;&gt;&lt;section&gt;312624 B&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__326&quot;&gt;&lt;section&gt;Utf8JsonReader&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__327&quot;&gt;&lt;section&gt;.NET 8.0&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__328&quot;&gt;&lt;section&gt;1000.json&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__329&quot;&gt;&lt;section&gt;427.07 us&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__330&quot;&gt;&lt;section&gt;-&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__331&quot;&gt;&lt;section&gt;-&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__332&quot;&gt;&lt;section&gt;-&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__333&quot;&gt;&lt;section&gt;-&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__334&quot;&gt;&lt;section&gt;JsonNode&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__335&quot;&gt;&lt;section&gt;.NET 8.0&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__336&quot;&gt;&lt;section&gt;1000.json&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__337&quot;&gt;&lt;section&gt;2,699.76 us&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__338&quot;&gt;&lt;section&gt;484.3750&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__339&quot;&gt;&lt;section&gt;460.9375&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__340&quot;&gt;&lt;section&gt;199.2188&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__341&quot;&gt;&lt;section&gt;3120511 B&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__342&quot;&gt;&lt;section&gt;Utf8JsonReader&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__343&quot;&gt;&lt;section&gt;NativeAOT 8.0&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__344&quot;&gt;&lt;section&gt;1000.json&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__345&quot;&gt;&lt;section&gt;494.87 us&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__346&quot;&gt;&lt;section&gt;-&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__347&quot;&gt;&lt;section&gt;-&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__348&quot;&gt;&lt;section&gt;-&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__349&quot;&gt;&lt;section&gt;-&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__350&quot;&gt;&lt;section&gt;JsonNode&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__351&quot;&gt;&lt;section&gt;NativeAOT 8.0&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__352&quot;&gt;&lt;section&gt;1000.json&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__353&quot;&gt;&lt;section&gt;3,652.08 us&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__354&quot;&gt;&lt;section&gt;484.3750&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__355&quot;&gt;&lt;section&gt;464.8438&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__356&quot;&gt;&lt;section&gt;199.2188&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__357&quot;&gt;&lt;section&gt;3120513 B&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__358&quot;&gt;&lt;section&gt;Utf8JsonReader&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__359&quot;&gt;&lt;section&gt;.NET 8.0&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__360&quot;&gt;&lt;section&gt;10000.json&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__361&quot;&gt;&lt;section&gt;4,306.30 us&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__362&quot;&gt;&lt;section&gt;-&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__363&quot;&gt;&lt;section&gt;-&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__364&quot;&gt;&lt;section&gt;-&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__365&quot;&gt;&lt;section&gt;3 B&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__366&quot;&gt;&lt;section&gt;JsonNode&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__367&quot;&gt;&lt;section&gt;.NET 8.0&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__368&quot;&gt;&lt;section&gt;10000.json&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__369&quot;&gt;&lt;section&gt;60,883.56 us&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__370&quot;&gt;&lt;section&gt;4000.0000&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__371&quot;&gt;&lt;section&gt;3888.8889&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__372&quot;&gt;&lt;section&gt;1222.2222&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__373&quot;&gt;&lt;section&gt;31215842 B&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__374&quot;&gt;&lt;section&gt;Utf8JsonReader&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__375&quot;&gt;&lt;section&gt;NativeAOT 8.0&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__376&quot;&gt;&lt;section&gt;10000.json&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__377&quot;&gt;&lt;section&gt;4,946.71 us&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__378&quot;&gt;&lt;section&gt;-&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__379&quot;&gt;&lt;section&gt;-&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__380&quot;&gt;&lt;section&gt;-&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__381&quot;&gt;&lt;section&gt;3 B&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__382&quot;&gt;&lt;section&gt;JsonNode&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__383&quot;&gt;&lt;section&gt;NativeAOT 8.0&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__384&quot;&gt;&lt;section&gt;10000.json&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__385&quot;&gt;&lt;section&gt;62,864.68 us&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__386&quot;&gt;&lt;section&gt;4125.0000&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__387&quot;&gt;&lt;section&gt;4000.0000&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__388&quot;&gt;&lt;section&gt;1250.0000&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;text-align: left;line-height: 1.75;border: 1px solid rgb(223, 223, 223);padding: 0.25em 0.5em;color: rgb(63, 63, 63);&quot; class=&quot;js_darkmode__389&quot;&gt;&lt;section&gt;31216863 B&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Wed, 15 Apr 2026 09:46:22 +0800</pubDate></item><item><title>一款基于 .NET 开源、功能强大的 WebAPI 管理和性能测试工具</title><link>https://www.codepub.top/post/258.html</link><description>&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;border-bottom-color: rgb(89, 89, 89);margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 0, 0);border-left-color: rgb(0, 0, 0);border-right-color: rgb(0, 0, 0);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: flex;flex-direction: unset;float: unset;height: auto;justify-content: unset;line-height: 1.5em;overflow-x: unset;overflow-y: unset;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;text-align: left;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__6 js_darkmode__text__6&quot;&gt;&lt;span style=&quot;font-size: 22px;color: #595959;border-bottom-color: #595959;line-height: 1.5em;letter-spacing: 0em;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: #000000;border-left-color: #000000;border-right-color: #000000;border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: block;font-weight: bold;flex-direction: unset;float: unset;height: auto;justify-content: unset;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;overflow-x: unset;overflow-y: unset;text-align: left;text-indent: 0em;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__7 js_darkmode__text__7&quot;&gt;&lt;span class=&quot;js_darkmode__text__8&quot;&gt;项目概述&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;color: rgb(89, 89, 89);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__8 js_darkmode__text__9&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__9 js_darkmode__text__10&quot;&gt;&lt;span class=&quot;js_darkmode__text__11&quot;&gt;WebBenchmark&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__12&quot;&gt;&amp;nbsp;是一款基于开源通讯组件&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__10 js_darkmode__text__13&quot;&gt;&lt;span class=&quot;js_darkmode__text__14&quot;&gt;Beetlex&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__15&quot;&gt;&amp;nbsp;扩展的 WebAPI 管理和性能测试工具。它旨在解决传统工具中管理工具缺乏性能压测能力，或有性能测试功能但缺少管理功能的问题。WebBenchmark 同时具备管理和性能压测能力，支持 HTTP 和 HTTPS 服务测试，是开发者和测试人员理想的 WebAPI 测试工具。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;color: rgb(89, 89, 89);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__11&quot;&gt;&lt;img class=&quot;rich_pages wxw-img js_darkmode__12&quot; data-aistatus=&quot;1&quot; data-imgfileid=&quot;100003215&quot; data-ratio=&quot;0.6982421875&quot; data-src=&quot;https://mmbiz.qpic.cn/mmbiz_png/Z0lg7OrgCdicBDVHJeyJ5mpDQDIK4Ksibyv3Pic8vT8K5hpM4W67WwOicBbrsoiaILiaFEibG63syk0xyic8uqjyV8myze7StO6xo45z1ZFnyVyooics/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=1&quot; data-type=&quot;png&quot; data-w=&quot;1024&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 500px !important;&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;1&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_png/Z0lg7OrgCdicBDVHJeyJ5mpDQDIK4Ksibyv3Pic8vT8K5hpM4W67WwOicBbrsoiaILiaFEibG63syk0xyic8uqjyV8myze7StO6xo45z1ZFnyVyooics/640?wx_fmt=png&amp;from=appmsg&amp;wxfrom=13&amp;tp=wxpic#imgIndex=1&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; data-sec-load-status=&quot;2&quot; data-report-img-idx=&quot;1&quot; alt=&quot;图片&quot;/&gt;&lt;/p&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;border-bottom-color: rgb(89, 89, 89);margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 0, 0);border-left-color: rgb(0, 0, 0);border-right-color: rgb(0, 0, 0);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: flex;flex-direction: unset;float: unset;height: auto;justify-content: unset;line-height: 1.5em;overflow-x: unset;overflow-y: unset;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;text-align: left;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__13 js_darkmode__text__16&quot;&gt;&lt;span style=&quot;font-size: 22px;color: #595959;border-bottom-color: #595959;line-height: 1.5em;letter-spacing: 0em;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: #000000;border-left-color: #000000;border-right-color: #000000;border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: block;font-weight: bold;flex-direction: unset;float: unset;height: auto;justify-content: unset;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;overflow-x: unset;overflow-y: unset;text-align: left;text-indent: 0em;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__14 js_darkmode__text__17&quot;&gt;&lt;span class=&quot;js_darkmode__text__18&quot;&gt;应用场景&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot;js_darkmode__15 js_darkmode__text__19 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__16 js_darkmode__text__21&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__17 js_darkmode__text__22&quot;&gt;&lt;span class=&quot;js_darkmode__text__23&quot;&gt;WebAPI 开发测试&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__24&quot;&gt;：在开发 WebAPI 时，使用 WebBenchmark 进行功能测试和性能测试，确保 API 的稳定性和性能。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__18 js_darkmode__text__26&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__19 js_darkmode__text__27&quot;&gt;&lt;span class=&quot;js_darkmode__text__28&quot;&gt;系统压力测试&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__29&quot;&gt;：模拟多用户并发访问，测试系统的承载能力和性能瓶颈。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__20 js_darkmode__text__31&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__21 js_darkmode__text__32&quot;&gt;&lt;span class=&quot;js_darkmode__text__33&quot;&gt;API 管理&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__34&quot;&gt;：提供多用户和多分类管理功能，方便团队对 API 进行统一管理和维护。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__22 js_darkmode__text__36&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__23 js_darkmode__text__37&quot;&gt;&lt;span class=&quot;js_darkmode__text__38&quot;&gt;自动化测试&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__39&quot;&gt;：结合 CI/CD 流程，实现 API 的自动化测试和性能监控。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;border-bottom-color: rgb(89, 89, 89);margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 0, 0);border-left-color: rgb(0, 0, 0);border-right-color: rgb(0, 0, 0);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: flex;flex-direction: unset;float: unset;height: auto;justify-content: unset;line-height: 1.5em;overflow-x: unset;overflow-y: unset;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;text-align: left;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__24 js_darkmode__text__40&quot;&gt;&lt;span style=&quot;font-size: 22px;color: #595959;border-bottom-color: #595959;line-height: 1.5em;letter-spacing: 0em;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: #000000;border-left-color: #000000;border-right-color: #000000;border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: block;font-weight: bold;flex-direction: unset;float: unset;height: auto;justify-content: unset;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;overflow-x: unset;overflow-y: unset;text-align: left;text-indent: 0em;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__25 js_darkmode__text__41&quot;&gt;&lt;span class=&quot;js_darkmode__text__42&quot;&gt;功能模块&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: block;&quot; class=&quot;js_darkmode__text__43&quot;&gt;&lt;span style=&quot;font-size: 20px;color: #595959;line-height: 1.5em;letter-spacing: 0em;text-align: left;font-weight: bold;display: block;&quot; class=&quot;js_darkmode__26 js_darkmode__text__44&quot;&gt;&lt;span class=&quot;js_darkmode__text__45&quot;&gt;基础用例管理&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot;js_darkmode__27 js_darkmode__text__46 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__28 js_darkmode__text__48&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__29 js_darkmode__text__49&quot;&gt;&lt;span class=&quot;js_darkmode__text__50&quot;&gt;添加和管理测试用例&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__51&quot;&gt;：用户可以添加、编辑和删除 WebAPI 的测试用例。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__30 js_darkmode__text__53&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__31 js_darkmode__text__54&quot;&gt;&lt;span class=&quot;js_darkmode__text__55&quot;&gt;HTTP 请求内容描述&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__56&quot;&gt;：支持设置地址参数、请求头、请求内容（application/json 和 form-urlencoded）。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__32 js_darkmode__text__58&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__33 js_darkmode__text__59&quot;&gt;&lt;span class=&quot;js_darkmode__text__60&quot;&gt;参数值函数引用&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__61&quot;&gt;：参数值支持函数引用，每次请求可产生新的函数值进行提交。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__34 js_darkmode__text__63&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__35 js_darkmode__text__64&quot;&gt;&lt;span class=&quot;js_darkmode__text__65&quot;&gt;测试用例验证&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__66&quot;&gt;：在编辑时即可对当前用例进行测试，了解用例运行的实际情况。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: block;&quot; class=&quot;js_darkmode__text__67&quot;&gt;&lt;span style=&quot;font-size: 20px;color: #595959;line-height: 1.5em;letter-spacing: 0em;text-align: left;font-weight: bold;display: block;&quot; class=&quot;js_darkmode__36 js_darkmode__text__68&quot;&gt;&lt;span class=&quot;js_darkmode__text__69&quot;&gt;性能测试&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot;js_darkmode__37 js_darkmode__text__70 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__38 js_darkmode__text__72&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__39 js_darkmode__text__73&quot;&gt;&lt;span class=&quot;js_darkmode__text__74&quot;&gt;多用例组合性能测试&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__75&quot;&gt;：支持选择多个用例进行组合性能测试。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__40 js_darkmode__text__77&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__41 js_darkmode__text__78&quot;&gt;&lt;span class=&quot;js_darkmode__text__79&quot;&gt;并发测试设置&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__80&quot;&gt;：用户可以根据需求设置并发测试的数据，进行压力测试。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__42 js_darkmode__text__82&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__43 js_darkmode__text__83&quot;&gt;&lt;span class=&quot;js_darkmode__text__84&quot;&gt;实时压测结果反馈&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__85&quot;&gt;：测试过程中实时反映当前压测结果，显示相关状态和响应延时分布数据。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__44 js_darkmode__text__87&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__45 js_darkmode__text__88&quot;&gt;&lt;span class=&quot;js_darkmode__text__89&quot;&gt;历史记录查看&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__90&quot;&gt;：性能测试保存历史记录，用户可以查看历史测试结果。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: block;&quot; class=&quot;js_darkmode__text__91&quot;&gt;&lt;span style=&quot;font-size: 20px;color: #595959;line-height: 1.5em;letter-spacing: 0em;text-align: left;font-weight: bold;display: block;&quot; class=&quot;js_darkmode__46 js_darkmode__text__92&quot;&gt;&lt;span class=&quot;js_darkmode__text__93&quot;&gt;多用户和多分类管理&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot;js_darkmode__47 js_darkmode__text__94 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__48 js_darkmode__text__96&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__49 js_darkmode__text__97&quot;&gt;&lt;span class=&quot;js_darkmode__text__98&quot;&gt;用户管理&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__99&quot;&gt;：支持多用户管理，不同用户拥有不同的权限。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__50 js_darkmode__text__101&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__51 js_darkmode__text__102&quot;&gt;&lt;span class=&quot;js_darkmode__text__103&quot;&gt;分类管理&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__104&quot;&gt;：提供分类管理功能，方便用户对测试用例进行分类管理。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: block;&quot; class=&quot;js_darkmode__text__105&quot;&gt;&lt;span style=&quot;font-size: 20px;color: #595959;line-height: 1.5em;letter-spacing: 0em;text-align: left;font-weight: bold;display: block;&quot; class=&quot;js_darkmode__52 js_darkmode__text__106&quot;&gt;&lt;span class=&quot;js_darkmode__text__107&quot;&gt;详细报告生成&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot;js_darkmode__53 js_darkmode__text__108 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__54 js_darkmode__text__110&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__55 js_darkmode__text__111&quot;&gt;&lt;span class=&quot;js_darkmode__text__112&quot;&gt;访问 API 详细时间线信息&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__113&quot;&gt;：提供详细的网络请求响应时间线。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__56 js_darkmode__text__115&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__57 js_darkmode__text__116&quot;&gt;&lt;span class=&quot;js_darkmode__text__117&quot;&gt;响应状态和延时汇总&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__118&quot;&gt;：提供详细的响应状态和各延时汇总信息。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;border-bottom-color: rgb(89, 89, 89);margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 0, 0);border-left-color: rgb(0, 0, 0);border-right-color: rgb(0, 0, 0);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: flex;flex-direction: unset;float: unset;height: auto;justify-content: unset;line-height: 1.5em;overflow-x: unset;overflow-y: unset;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;text-align: left;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__58 js_darkmode__text__119&quot;&gt;&lt;span style=&quot;font-size: 22px;color: #595959;border-bottom-color: #595959;line-height: 1.5em;letter-spacing: 0em;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: #000000;border-left-color: #000000;border-right-color: #000000;border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: block;font-weight: bold;flex-direction: unset;float: unset;height: auto;justify-content: unset;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;overflow-x: unset;overflow-y: unset;text-align: left;text-indent: 0em;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__59 js_darkmode__text__120&quot;&gt;&lt;span class=&quot;js_darkmode__text__121&quot;&gt;功能特点&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot;js_darkmode__60 js_darkmode__text__122 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__61 js_darkmode__text__124&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__62 js_darkmode__text__125&quot;&gt;&lt;span class=&quot;js_darkmode__text__126&quot;&gt;管理和性能压测一体化&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__127&quot;&gt;：同时具备管理和性能压测能力，满足用户多样化需求。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__63 js_darkmode__text__129&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__64 js_darkmode__text__130&quot;&gt;&lt;span class=&quot;js_darkmode__text__131&quot;&gt;支持多种 HTTP 方法&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__132&quot;&gt;：暂支持基础方法的 GET、POST、PUT 和 DELETE。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__65 js_darkmode__text__134&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__66 js_darkmode__text__135&quot;&gt;&lt;span class=&quot;js_darkmode__text__136&quot;&gt;值函数支持&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__137&quot;&gt;：提供值函数支持，方便用户进行随机性数据构建和压测。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__67 js_darkmode__text__139&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__68 js_darkmode__text__140&quot;&gt;&lt;span class=&quot;js_darkmode__text__141&quot;&gt;多用例同时压测&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__142&quot;&gt;：支持多用例同时进行性能压测，提高测试效率。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__69 js_darkmode__text__144&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__70 js_darkmode__text__145&quot;&gt;&lt;span class=&quot;js_darkmode__text__146&quot;&gt;多节点测试&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__147&quot;&gt;：支持多节点测试，模拟更真实的用户访问场景。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__71 js_darkmode__text__149&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__72 js_darkmode__text__150&quot;&gt;&lt;span class=&quot;js_darkmode__text__151&quot;&gt;易用性&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__152&quot;&gt;：提供简便的 JSON 编辑器，方便用户录入和验证 JSON 数据。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__73 js_darkmode__text__154&quot;&gt;&lt;strong style=&quot;color: rgb(71, 193, 168);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__74 js_darkmode__text__155&quot;&gt;&lt;span class=&quot;js_darkmode__text__156&quot;&gt;跨平台支持&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__157&quot;&gt;：基于 .NET Core 开发，可以运行在安装有 .NET Core 2.1 或更高版本的各大平台上。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;border-bottom-color: rgb(89, 89, 89);margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 0, 0);border-left-color: rgb(0, 0, 0);border-right-color: rgb(0, 0, 0);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: flex;flex-direction: unset;float: unset;height: auto;justify-content: unset;line-height: 1.5em;overflow-x: unset;overflow-y: unset;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;text-align: left;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__75 js_darkmode__text__158&quot;&gt;&lt;span style=&quot;font-size: 22px;color: #595959;border-bottom-color: #595959;line-height: 1.5em;letter-spacing: 0em;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: #000000;border-left-color: #000000;border-right-color: #000000;border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: block;font-weight: bold;flex-direction: unset;float: unset;height: auto;justify-content: unset;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;overflow-x: unset;overflow-y: unset;text-align: left;text-indent: 0em;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__76 js_darkmode__text__159&quot;&gt;&lt;span class=&quot;js_darkmode__text__160&quot;&gt;功能演示&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img class=&quot;rich_pages wxw-img js_darkmode__77&quot; data-aistatus=&quot;1&quot; data-imgfileid=&quot;100003215&quot; data-ratio=&quot;0.6982421875&quot; data-src=&quot;https://mmbiz.qpic.cn/mmbiz_png/Z0lg7OrgCdicBDVHJeyJ5mpDQDIK4Ksibyv3Pic8vT8K5hpM4W67WwOicBbrsoiaILiaFEibG63syk0xyic8uqjyV8myze7StO6xo45z1ZFnyVyooics/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=2&quot; data-type=&quot;png&quot; data-w=&quot;1024&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 500px !important;&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;1&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_png/Z0lg7OrgCdicBDVHJeyJ5mpDQDIK4Ksibyv3Pic8vT8K5hpM4W67WwOicBbrsoiaILiaFEibG63syk0xyic8uqjyV8myze7StO6xo45z1ZFnyVyooics/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=2&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776217439391&quot; data-report-img-idx=&quot;2&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img data-src=&quot;https://mmbiz.qpic.cn/mmbiz_png/Z0lg7OrgCd9rvO8n8VoRcdJkc9ial59bJLtpeu5Oq0ic3gWH77Smh8FrkvvlhWOxHffhOMIUictgsy02e6tHHu4KUWz3TDnKQibB0rqSUWtialfE/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=3&quot; class=&quot;rich_pages wxw-img js_darkmode__78&quot; data-ratio=&quot;0.69921875&quot; data-type=&quot;png&quot; data-w=&quot;1024&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 500px !important;&quot; data-imgfileid=&quot;100003218&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;2&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_png/Z0lg7OrgCd9rvO8n8VoRcdJkc9ial59bJLtpeu5Oq0ic3gWH77Smh8FrkvvlhWOxHffhOMIUictgsy02e6tHHu4KUWz3TDnKQibB0rqSUWtialfE/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=3&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776217439509&quot; data-report-img-idx=&quot;3&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img class=&quot;rich_pages wxw-img js_darkmode__79&quot; data-aistatus=&quot;1&quot; data-imgfileid=&quot;100003217&quot; data-ratio=&quot;0.7997847147470398&quot; data-src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/Z0lg7OrgCdic2kL1LKcBN7TED9m72nUvdEhfCrtfoWTfkaOz5zJIv8zMrRlibm8iaYBTwCRtExKxY7hIaKVhT3E2xUduQ51dYsDCdRVfWeVvP8/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=4&quot; data-type=&quot;png&quot; data-w=&quot;929&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 500px !important;&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;3&quot; src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/Z0lg7OrgCdic2kL1LKcBN7TED9m72nUvdEhfCrtfoWTfkaOz5zJIv8zMrRlibm8iaYBTwCRtExKxY7hIaKVhT3E2xUduQ51dYsDCdRVfWeVvP8/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=4&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776217439550&quot; data-report-img-idx=&quot;4&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img data-src=&quot;https://mmbiz.qpic.cn/mmbiz_png/Z0lg7OrgCd9GwibYJI1MYH6iaBMgnZEeJsWT28cMZbBTlnsAXVOQ2RownGcZeRLiaPdN3I1PXicv0AgMjIhibllhz845UfAxjficibXgmRZ0ibz85OU/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=5&quot; class=&quot;rich_pages wxw-img js_darkmode__80&quot; data-ratio=&quot;0.49316628701594534&quot; data-type=&quot;png&quot; data-w=&quot;878&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 500px !important;&quot; data-imgfileid=&quot;100003213&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;4&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_png/Z0lg7OrgCd9GwibYJI1MYH6iaBMgnZEeJsWT28cMZbBTlnsAXVOQ2RownGcZeRLiaPdN3I1PXicv0AgMjIhibllhz845UfAxjficibXgmRZ0ibz85OU/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=5&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776217439581&quot; data-report-img-idx=&quot;5&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img data-src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/Z0lg7OrgCdib159P2ricjL4ibaiaPsW5dy19OdQUttSiccmjeSNxfsZDpr5uEb2WbHcvA0Olrk59fOtMQqkjavwFXVlY00OFNHxGGEdyOQALDOHc/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=6&quot; class=&quot;rich_pages wxw-img js_darkmode__81&quot; data-ratio=&quot;0.4902186421173763&quot; data-type=&quot;png&quot; data-w=&quot;869&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 500px !important;&quot; data-imgfileid=&quot;100003214&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;5&quot; src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/Z0lg7OrgCdib159P2ricjL4ibaiaPsW5dy19OdQUttSiccmjeSNxfsZDpr5uEb2WbHcvA0Olrk59fOtMQqkjavwFXVlY00OFNHxGGEdyOQALDOHc/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=6&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776217439692&quot; data-report-img-idx=&quot;6&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img data-src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/Z0lg7OrgCdicKXeicEtqajw1DTrQgHGLgBmVfmRTZ4EA8t6WLbpSbyRJ1B8gNZIAe4Cr3zaQjnWlBOu7wq0aIjvVtEWcVbXqOZ8I0wQJwnO4A/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=7&quot; class=&quot;rich_pages wxw-img js_darkmode__82&quot; data-ratio=&quot;0.41430192962542567&quot; data-type=&quot;png&quot; data-w=&quot;881&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 500px !important;&quot; data-imgfileid=&quot;100003219&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;6&quot; src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/Z0lg7OrgCdicKXeicEtqajw1DTrQgHGLgBmVfmRTZ4EA8t6WLbpSbyRJ1B8gNZIAe4Cr3zaQjnWlBOu7wq0aIjvVtEWcVbXqOZ8I0wQJwnO4A/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=7&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776217440094&quot; data-report-img-idx=&quot;7&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img data-src=&quot;https://mmbiz.qpic.cn/mmbiz_png/Z0lg7OrgCd9orYvZ9fOONLhibataib94Tz9Zcjic6BXPfZMHC73MLUCdRaGohQoiaulw1WLjtibcMroTbss2QLDppsuOdG6LN02HXmQ8GG31XSiao/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=8&quot; class=&quot;rich_pages wxw-img js_darkmode__83&quot; data-ratio=&quot;0.9374313940724479&quot; data-type=&quot;png&quot; data-w=&quot;911&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 500px !important;&quot; data-imgfileid=&quot;100003222&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;7&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_png/Z0lg7OrgCd9orYvZ9fOONLhibataib94Tz9Zcjic6BXPfZMHC73MLUCdRaGohQoiaulw1WLjtibcMroTbss2QLDppsuOdG6LN02HXmQ8GG31XSiao/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=8&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776217440338&quot; data-report-img-idx=&quot;8&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img data-src=&quot;https://mmbiz.qpic.cn/mmbiz_png/Z0lg7OrgCdicNReOO6U4IUj3dt9gqib5DTaIY6mOUlwFicmcXKibjsnMtnu8nmPaNqN3dASVFfrfeqOHMfBH6ZTXPlueXdkp9IGtEb3W7XLZNL0/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=9&quot; class=&quot;rich_pages wxw-img js_darkmode__84&quot; data-ratio=&quot;0.3935546875&quot; data-type=&quot;png&quot; data-w=&quot;1024&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 500px !important;&quot; data-imgfileid=&quot;100003220&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;8&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_png/Z0lg7OrgCdicNReOO6U4IUj3dt9gqib5DTaIY6mOUlwFicmcXKibjsnMtnu8nmPaNqN3dASVFfrfeqOHMfBH6ZTXPlueXdkp9IGtEb3W7XLZNL0/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=9&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776217440650&quot; data-report-img-idx=&quot;9&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img data-src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/Z0lg7OrgCd8THUqzI25baf3RMWIHVIdkFwOHuiburwf5WfJjIpMHxYwQFe3mgk5ecJib96Qv0LkicldVUAzr7hib5dMka2CoPtCfkH7yo8FeWCQ/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=10&quot; class=&quot;rich_pages wxw-img js_darkmode__85&quot; data-ratio=&quot;0.5908203125&quot; data-type=&quot;png&quot; data-w=&quot;1024&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 500px !important;&quot; data-imgfileid=&quot;100003223&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;9&quot; src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/Z0lg7OrgCd8THUqzI25baf3RMWIHVIdkFwOHuiburwf5WfJjIpMHxYwQFe3mgk5ecJib96Qv0LkicldVUAzr7hib5dMka2CoPtCfkH7yo8FeWCQ/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=10&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776217440769&quot; data-report-img-idx=&quot;10&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img data-src=&quot;https://mmbiz.qpic.cn/mmbiz_png/Z0lg7OrgCd800YqcPIxTWOAlHM7IY4yLo8v03JmgWaKBRzFuFIjC9GJcuqMSaTzNV0VGtQoJwNWLWAZYM4apEJjqzYPnrJkIu0J1RgAe1Tk/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=11&quot; class=&quot;rich_pages wxw-img js_darkmode__86&quot; data-ratio=&quot;0.6689453125&quot; data-type=&quot;png&quot; data-w=&quot;1024&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 500px !important;&quot; data-imgfileid=&quot;100003221&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;10&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_png/Z0lg7OrgCd800YqcPIxTWOAlHM7IY4yLo8v03JmgWaKBRzFuFIjC9GJcuqMSaTzNV0VGtQoJwNWLWAZYM4apEJjqzYPnrJkIu0J1RgAe1Tk/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=11&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776217440989&quot; data-report-img-idx=&quot;11&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;/p&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;border-bottom-color: rgb(89, 89, 89);margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 0, 0);border-left-color: rgb(0, 0, 0);border-right-color: rgb(0, 0, 0);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: flex;flex-direction: unset;float: unset;height: auto;justify-content: unset;line-height: 1.5em;overflow-x: unset;overflow-y: unset;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;text-align: left;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__87 js_darkmode__text__161&quot;&gt;&lt;span style=&quot;font-size: 22px;color: #595959;border-bottom-color: #595959;line-height: 1.5em;letter-spacing: 0em;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: solid;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 2px;border-left-width: 1px;border-right-width: 1px;border-top-color: #000000;border-left-color: #000000;border-right-color: #000000;border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: block;font-weight: bold;flex-direction: unset;float: unset;height: auto;justify-content: unset;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;overflow-x: unset;overflow-y: unset;text-align: left;text-indent: 0em;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__88 js_darkmode__text__162&quot;&gt;&lt;span class=&quot;js_darkmode__text__163&quot;&gt;源码地址&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;color: rgb(89, 89, 89);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__89 js_darkmode__text__164&quot;&gt;&lt;span class=&quot;js_darkmode__text__165&quot;&gt;&lt;span class=&quot;wx_text_underline&quot;&gt;https://gitee.com/beetlex-io/WebBenchmark&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Wed, 15 Apr 2026 09:44:15 +0800</pubDate></item><item><title>如果现在要做一个新的 Windows 桌面应用，应该选什么框架？</title><link>https://www.codepub.top/post/257.html</link><description>&lt;section style=&quot;font-family: -apple-system-font,BlinkMacSystemFont, Helvetica Neue, PingFang SC, Hiragino Sans GB , Microsoft YaHei UI , Microsoft YaHei ,Arial,sans-serif;font-size: 14px;line-height: 1.75;text-align: left;&quot; class=&quot;js_darkmode__text__0&quot;&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;margin-top: 0 !important;&quot; class=&quot;js_darkmode__0 js_darkmode__text__1&quot;&gt;&lt;span class=&quot;js_darkmode__text__2&quot;&gt;在一次技术选型讨论中，我们试图回答一个简单的问题：&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;background: #f7f7f7;font-style: italic;padding: 1em 1em 1em 2em;border-left: 4px solid #333333;border-radius: 6px;color: rgba(0, 0, 0, 0.6);box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);margin-bottom: 1em;&quot; class=&quot;js_darkmode__1 js_darkmode__text__3&quot;&gt;&lt;p style=&quot;display: block;font-size: 1em;letter-spacing: 0.1em;color: #3f3f3f;margin: 0;&quot; class=&quot;js_darkmode__2 js_darkmode__text__4&quot;&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__3 js_darkmode__text__5&quot;&gt;&lt;span class=&quot;js_darkmode__text__6&quot;&gt;“如果现在从零做一个 Windows 桌面应用，选什么框架？”&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__4 js_darkmode__text__7&quot;&gt;&lt;span class=&quot;js_darkmode__text__8&quot;&gt;没人能干脆回答。&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;box-sizing: border-box;&quot; class=&quot;js_darkmode__text__9 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p style=&quot;box-sizing: border-box;&quot; class=&quot;js_darkmode__text__11&quot;&gt;&lt;span style=&quot;box-sizing: border-box;&quot; class=&quot;js_darkmode__text__12&quot;&gt;&lt;span class=&quot;js_darkmode__text__13&quot;&gt;WPF 成熟，但不再演进；&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;box-sizing: border-box;&quot; class=&quot;js_darkmode__text__15&quot;&gt;&lt;span style=&quot;box-sizing: border-box;&quot; class=&quot;js_darkmode__text__16&quot;&gt;&lt;span class=&quot;js_darkmode__text__17&quot;&gt;WinUI 3 面向未来，但还不稳定；&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;box-sizing: border-box;&quot; class=&quot;js_darkmode__text__19&quot;&gt;&lt;span style=&quot;box-sizing: border-box;&quot; class=&quot;js_darkmode__text__20&quot;&gt;&lt;span class=&quot;js_darkmode__text__21&quot;&gt;&lt;span class=&quot;&quot;&gt;Electron&lt;/span&gt; 高效，却不够“安心”；&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;box-sizing: border-box;&quot; class=&quot;js_darkmode__text__23&quot;&gt;&lt;span style=&quot;box-sizing: border-box;&quot; class=&quot;js_darkmode__text__24&quot;&gt;&lt;span class=&quot;js_darkmode__text__25&quot;&gt;而&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;&quot; class=&quot;js_darkmode__text__26&quot;&gt;&lt;strong style=&quot;box-sizing: border-box;&quot; class=&quot;js_darkmode__text__27&quot;&gt;&lt;span style=&quot;box-sizing: border-box;&quot; class=&quot;js_darkmode__text__28&quot;&gt;&lt;span class=&quot;js_darkmode__text__29&quot;&gt;&lt;span class=&quot;&quot;&gt;MFC&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;&quot; class=&quot;js_darkmode__text__30&quot;&gt;&lt;span class=&quot;js_darkmode__text__31&quot;&gt;，看似过时，却依然稳稳运行在大量工业软件里。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__5 js_darkmode__text__32&quot;&gt;&lt;span class=&quot;js_darkmode__text__33&quot;&gt;每个选择都合理，但没有一个让人毫不犹豫。&lt;span style=&quot;font-weight: bold;&quot; class=&quot;js_darkmode__text__34&quot;&gt;这个结果本身，比任何答案都更说明问题。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__0&quot;/&gt;&lt;h2 data-heading=&quot;true&quot; style=&quot;display: table;margin: 4em auto 2em;color: #fff;background: #333333;font-weight: bold;text-align: center;padding: 0.3em 1em;border-radius: 8px;font-size: 18.2px;box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);&quot; class=&quot;js_darkmode__6 js_darkmode__text__35&quot;&gt;&lt;span class=&quot;js_darkmode__text__36&quot;&gt;一、一个平台是否成熟，看它有没有“默认路径”&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__7 js_darkmode__text__37&quot;&gt;&lt;span class=&quot;js_darkmode__text__38&quot;&gt;对于开发者来说，有一个非常实际的判断标准：&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;background: #f7f7f7;font-style: italic;padding: 1em 1em 1em 2em;border-left: 4px solid #333333;border-radius: 6px;color: rgba(0, 0, 0, 0.6);box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);margin-bottom: 1em;&quot; class=&quot;js_darkmode__8 js_darkmode__text__39&quot;&gt;&lt;p style=&quot;display: block;font-size: 1em;letter-spacing: 0.1em;color: #3f3f3f;margin: 0;&quot; class=&quot;js_darkmode__9 js_darkmode__text__40&quot;&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__10 js_darkmode__text__41&quot;&gt;&lt;span class=&quot;js_darkmode__text__42&quot;&gt;如果一个平台无法在很短时间内给出“推荐做法”，那么它在工程层面就是不成熟的。&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__11 js_darkmode__text__43&quot;&gt;&lt;span class=&quot;js_darkmode__text__44&quot;&gt;Windows 在 GUI 开发上，正处于这样一种状态。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__12 js_darkmode__text__45&quot;&gt;&lt;span class=&quot;js_darkmode__text__46&quot;&gt;但它并不是一开始就这样。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__1&quot;/&gt;&lt;h2 data-heading=&quot;true&quot; style=&quot;display: table;margin: 4em auto 2em;color: #fff;background: #333333;font-weight: bold;text-align: center;padding: 0.3em 1em;border-radius: 8px;font-size: 18.2px;box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);&quot; class=&quot;js_darkmode__13 js_darkmode__text__47&quot;&gt;&lt;span class=&quot;js_darkmode__text__48&quot;&gt;二、1988：Windows 曾经有一个统一模型&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__14 js_darkmode__text__49&quot;&gt;&lt;span class=&quot;js_darkmode__text__50&quot;&gt;1988 年，Charles Petzold 出版《Programming Windows》。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;p&gt;&lt;section style=&quot;text-align: center;&quot;&gt;&lt;img class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;1.2703703703703704&quot; data-s=&quot;300,640&quot; data-type=&quot;png&quot; data-w=&quot;1080&quot; style=&quot;width: 297px !important; height: auto !important; visibility: visible !important;&quot; type=&quot;block&quot; data-imgfileid=&quot;100019529&quot; data-aistatus=&quot;1&quot; data-src=&quot;https://mmbiz.qpic.cn/mmbiz_png/6VQeTr8b6J2iaboE8Izb70AEqeZ7fp3cP2A9dzgJYSpEa5qURb3xBDooHC5Z6iayibRkFic4cY9icGJ1GK5EvrteVbvynJCtCMINosibyl8tMcPag/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=0&quot; data-original-style=&quot;width: 297px;height: auto !important;&quot; data-index=&quot;0&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_png/6VQeTr8b6J2iaboE8Izb70AEqeZ7fp3cP2A9dzgJYSpEa5qURb3xBDooHC5Z6iayibRkFic4cY9icGJ1GK5EvrteVbvynJCtCMINosibyl8tMcPag/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=0&quot; _width=&quot;297px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776148871365&quot; data-report-img-idx=&quot;0&quot; data-fail=&quot;0&quot;/&gt;&lt;/section&gt;&lt;section style=&quot;font-family: -apple-system-font,BlinkMacSystemFont, Helvetica Neue, PingFang SC, Hiragino Sans GB , Microsoft YaHei UI , Microsoft YaHei ,Arial,sans-serif;font-size: 14px;line-height: 1.75;text-align: left;&quot; class=&quot;js_darkmode__text__51&quot;&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__15 js_darkmode__text__52&quot;&gt;&lt;span class=&quot;js_darkmode__text__53&quot;&gt;这本书的意义不在于厚度（800+ 页），而在于它定义了一个&lt;/span&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__16 js_darkmode__text__54&quot;&gt;&lt;span class=&quot;js_darkmode__text__55&quot;&gt;完整且自洽的开发范式&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__56&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot;js_darkmode__17 js_darkmode__text__57 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__59&quot;&gt;&lt;span class=&quot;js_darkmode__text__60&quot;&gt;• 使用 C 语言&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__62&quot;&gt;&lt;span class=&quot;js_darkmode__text__63&quot;&gt;• 调用 Win16（后来的 Win32）API&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__65&quot;&gt;&lt;span class=&quot;js_darkmode__text__66&quot;&gt;• 基于消息驱动模型构建 UI&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__21 js_darkmode__text__67&quot;&gt;&lt;span class=&quot;js_darkmode__text__68&quot;&gt;核心抽象非常明确：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot;js_darkmode__22 js_darkmode__text__69 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__71&quot;&gt;&lt;span class=&quot;js_darkmode__text__72&quot;&gt;•&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__24 js_darkmode__text__73&quot;&gt;&lt;span class=&quot;js_darkmode__text__74&quot;&gt;Message Loop（消息循环）&lt;/span&gt;&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__76&quot;&gt;&lt;span class=&quot;js_darkmode__text__77&quot;&gt;•&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__26 js_darkmode__text__78&quot;&gt;&lt;span class=&quot;js_darkmode__text__79&quot;&gt;Window Procedure（窗口过程）&lt;/span&gt;&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__81&quot;&gt;&lt;span class=&quot;js_darkmode__text__82&quot;&gt;•&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__28 js_darkmode__text__83&quot;&gt;&lt;span class=&quot;js_darkmode__text__84&quot;&gt;GDI（图形绘制）&lt;/span&gt;&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__29 js_darkmode__text__85&quot;&gt;&lt;span class=&quot;js_darkmode__text__86&quot;&gt;这个模型有明显缺点（冗长、易出错），但它具备一个更重要的特性：&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;background: #f7f7f7;font-style: italic;padding: 1em 1em 1em 2em;border-left: 4px solid #333333;border-radius: 6px;color: rgba(0, 0, 0, 0.6);box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);margin-bottom: 1em;&quot; class=&quot;js_darkmode__30 js_darkmode__text__87&quot;&gt;&lt;p style=&quot;display: block;font-size: 1em;letter-spacing: 0.1em;color: #3f3f3f;margin: 0;&quot; class=&quot;js_darkmode__31 js_darkmode__text__88&quot;&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__32 js_darkmode__text__89&quot;&gt;&lt;span class=&quot;js_darkmode__text__90&quot;&gt;一致性（coherence）&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__33 js_darkmode__text__91&quot;&gt;&lt;span class=&quot;js_darkmode__text__92&quot;&gt;开发者只需要理解一套机制，就可以构建完整应用。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__34 js_darkmode__text__93&quot;&gt;&lt;span class=&quot;js_darkmode__text__94&quot;&gt;可以把它类比为物理学中的基本定律：&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;background: #f7f7f7;font-style: italic;padding: 1em 1em 1em 2em;border-left: 4px solid #333333;border-radius: 6px;color: rgba(0, 0, 0, 0.6);box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);margin-bottom: 1em;&quot; class=&quot;js_darkmode__35 js_darkmode__text__95&quot;&gt;&lt;p style=&quot;display: block;font-size: 1em;letter-spacing: 0.1em;color: #3f3f3f;margin: 0;&quot; class=&quot;js_darkmode__36 js_darkmode__text__96&quot;&gt;&lt;span class=&quot;js_darkmode__text__97&quot;&gt;学习成本高，但一旦掌握，适用范围清晰且稳定。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__2&quot;/&gt;&lt;h2 data-heading=&quot;true&quot; style=&quot;display: table;margin: 4em auto 2em;color: #fff;background: #333333;font-weight: bold;text-align: center;padding: 0.3em 1em;border-radius: 8px;font-size: 18.2px;box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);&quot; class=&quot;js_darkmode__37 js_darkmode__text__98&quot;&gt;&lt;span class=&quot;js_darkmode__text__99&quot;&gt;三、1992–2000：面向对象与组件化的复杂化&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__38 js_darkmode__text__100&quot;&gt;&lt;span class=&quot;js_darkmode__text__101&quot;&gt;随着 Win32 的普及，其局限性开始显现。微软的应对方式是不断叠加抽象层。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-heading=&quot;true&quot; style=&quot;margin: 2em 8px 0.75em 0;color: #3f3f3f;font-weight: bold;line-height: 1.2;padding-left: 12px;font-size: 16.8px;border-left: 4px solid #333333;border-bottom: 1px dashed #333333;&quot; class=&quot;js_darkmode__39 js_darkmode__text__102&quot;&gt;&lt;span class=&quot;js_darkmode__text__103&quot;&gt;1. MFC（1992）&lt;/span&gt;&lt;/h3&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot;js_darkmode__40 js_darkmode__text__104 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__106&quot;&gt;&lt;span class=&quot;js_darkmode__text__107&quot;&gt;• 本质：Win32 的 C++ 封装&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__109&quot;&gt;&lt;span class=&quot;js_darkmode__text__110&quot;&gt;• 目标：引入面向对象模型&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;section style=&quot;text-align: center;&quot;&gt;&lt;img class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.3800578034682081&quot; data-s=&quot;300,640&quot; data-type=&quot;png&quot; data-w=&quot;692&quot; type=&quot;block&quot; data-imgfileid=&quot;100019530&quot; data-aistatus=&quot;1&quot; style=&quot;height: auto !important; visibility: visible !important; width: 520px !important;&quot; data-src=&quot;https://mmbiz.qpic.cn/mmbiz_png/6VQeTr8b6J2c3XfqobM2YZHkwib3rTbia48CNfxNmlElK6AArnekClnyic9vJHS1jJn13dktdghNK6UHxaicq7YnVlR9d9CzBy0bS9njib8UlOh0/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=1&quot; data-original-style=&quot;height: auto !important;&quot; data-index=&quot;1&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_png/6VQeTr8b6J2c3XfqobM2YZHkwib3rTbia48CNfxNmlElK6AArnekClnyic9vJHS1jJn13dktdghNK6UHxaicq7YnVlR9d9CzBy0bS9njib8UlOh0/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=1&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776148874887&quot; data-report-img-idx=&quot;1&quot; data-fail=&quot;0&quot;/&gt;&lt;/section&gt;&lt;section style=&quot;font-family: -apple-system-font,BlinkMacSystemFont, Helvetica Neue, PingFang SC, Hiragino Sans GB , Microsoft YaHei UI , Microsoft YaHei ,Arial,sans-serif;font-size: 14px;line-height: 1.75;text-align: left;&quot; class=&quot;js_darkmode__text__111&quot;&gt;&lt;figure style=&quot;margin: 1.5em 8px;color: #3f3f3f;&quot; class=&quot;js_darkmode__43 js_darkmode__text__112&quot;&gt;&lt;figcaption style=&quot;text-align: center;color: #888;font-size: 0.8em;&quot; class=&quot;js_darkmode__text__113&quot;&gt;&lt;span class=&quot;js_darkmode__text__114&quot;&gt;MFC 层次结构&lt;/span&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__44 js_darkmode__text__115&quot;&gt;&lt;span class=&quot;js_darkmode__text__116&quot;&gt;问题在于：&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;background: #f7f7f7;font-style: italic;padding: 1em 1em 1em 2em;border-left: 4px solid #333333;border-radius: 6px;color: rgba(0, 0, 0, 0.6);box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);margin-bottom: 1em;&quot; class=&quot;js_darkmode__45 js_darkmode__text__117&quot;&gt;&lt;p style=&quot;display: block;font-size: 1em;letter-spacing: 0.1em;color: #3f3f3f;margin: 0;&quot; class=&quot;js_darkmode__46 js_darkmode__text__118&quot;&gt;&lt;span class=&quot;js_darkmode__text__119&quot;&gt;它并没有替代 Win32，而是叠加在其之上。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__47 js_darkmode__text__120&quot;&gt;&lt;span class=&quot;js_darkmode__text__121&quot;&gt;开发者仍然需要理解底层机制，同时还要处理 MFC 的类体系。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__3&quot;/&gt;&lt;h3 data-heading=&quot;true&quot; style=&quot;margin: 2em 8px 0.75em 0;color: #3f3f3f;font-weight: bold;line-height: 1.2;padding-left: 12px;font-size: 16.8px;border-left: 4px solid #333333;border-bottom: 1px dashed #333333;&quot; class=&quot;js_darkmode__48 js_darkmode__text__122&quot;&gt;&lt;span class=&quot;js_darkmode__text__123&quot;&gt;2. COM / OLE / ActiveX&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__49 js_darkmode__text__124&quot;&gt;&lt;span class=&quot;js_darkmode__text__125&quot;&gt;这些技术并非 GUI 框架，而是组件模型，但它们深度影响了 UI 开发：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot;js_darkmode__50 js_darkmode__text__126 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__128&quot;&gt;&lt;span class=&quot;js_darkmode__text__129&quot;&gt;• COM：二进制组件接口标准&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__131&quot;&gt;&lt;span class=&quot;js_darkmode__text__132&quot;&gt;• OLE：对象嵌入与链接&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__134&quot;&gt;&lt;span class=&quot;js_darkmode__text__135&quot;&gt;• ActiveX：可嵌入控件&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__54 js_darkmode__text__136&quot;&gt;&lt;span class=&quot;js_darkmode__text__137&quot;&gt;它们带来的问题主要是：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot;js_darkmode__55 js_darkmode__text__138 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__140&quot;&gt;&lt;span class=&quot;js_darkmode__text__141&quot;&gt;• 生命周期管理复杂（引用计数）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__143&quot;&gt;&lt;span class=&quot;js_darkmode__text__144&quot;&gt;• 接口定义抽象（IDL）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__146&quot;&gt;&lt;span class=&quot;js_darkmode__text__147&quot;&gt;• 调试困难&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__59 js_darkmode__text__148&quot;&gt;&lt;span class=&quot;js_darkmode__text__149&quot;&gt;更重要的是：&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;background: #f7f7f7;font-style: italic;padding: 1em 1em 1em 2em;border-left: 4px solid #333333;border-radius: 6px;color: rgba(0, 0, 0, 0.6);box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);margin-bottom: 1em;&quot; class=&quot;js_darkmode__60 js_darkmode__text__150&quot;&gt;&lt;p style=&quot;display: block;font-size: 1em;letter-spacing: 0.1em;color: #3f3f3f;margin: 0;&quot; class=&quot;js_darkmode__61 js_darkmode__text__151&quot;&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__62 js_darkmode__text__152&quot;&gt;&lt;span class=&quot;js_darkmode__text__153&quot;&gt;这些技术没有形成统一的开发叙事。&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__63 js_darkmode__text__154&quot;&gt;&lt;span class=&quot;js_darkmode__text__155&quot;&gt;微软开始从“提供解决方案”转向“提供技术能力”。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__4&quot;/&gt;&lt;h2 data-heading=&quot;true&quot; style=&quot;display: table;margin: 4em auto 2em;color: #fff;background: #333333;font-weight: bold;text-align: center;padding: 0.3em 1em;border-radius: 8px;font-size: 18.2px;box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);&quot; class=&quot;js_darkmode__64 js_darkmode__text__156&quot;&gt;&lt;span class=&quot;js_darkmode__text__157&quot;&gt;四、2003：Avalon / WPF——最接近统一答案的一次&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__65 js_darkmode__text__158&quot;&gt;&lt;span class=&quot;js_darkmode__text__159&quot;&gt;在 PDC 2003 上，微软发布 Longhorn 架构：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__66 js_darkmode__text__160&quot;&gt;&lt;span class=&quot;js_darkmode__text__161&quot;&gt;三大组成：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot;js_darkmode__67 js_darkmode__text__162 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__164&quot;&gt;&lt;span class=&quot;js_darkmode__text__165&quot;&gt;• WinFS（文件系统）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__167&quot;&gt;&lt;span class=&quot;js_darkmode__text__168&quot;&gt;• Indigo（通信框架，后为 WCF）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__170&quot;&gt;&lt;span class=&quot;js_darkmode__text__171&quot;&gt;• Avalon（UI 系统，即 WPF）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__71 js_darkmode__text__172&quot;&gt;&lt;span class=&quot;js_darkmode__text__173&quot;&gt;其中 Avalon（WPF）具有几个关键创新：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot;js_darkmode__72 js_darkmode__text__174 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__176&quot;&gt;&lt;span class=&quot;js_darkmode__text__177&quot;&gt;•&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__74 js_darkmode__text__178&quot;&gt;&lt;span class=&quot;js_darkmode__text__179&quot;&gt;XAML：声明式 UI 描述语言&lt;/span&gt;&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__181&quot;&gt;&lt;span class=&quot;js_darkmode__text__182&quot;&gt;•&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__76 js_darkmode__text__183&quot;&gt;&lt;span class=&quot;js_darkmode__text__184&quot;&gt;基于 &lt;span class=&quot;&quot;&gt;DirectX&lt;/span&gt; 的渲染系统&lt;/span&gt;&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__186&quot;&gt;&lt;span class=&quot;js_darkmode__text__187&quot;&gt;•&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__78 js_darkmode__text__188&quot;&gt;&lt;span class=&quot;js_darkmode__text__189&quot;&gt;数据绑定与模板机制&lt;/span&gt;&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__79 js_darkmode__text__190&quot;&gt;&lt;span class=&quot;js_darkmode__text__191&quot;&gt;从架构角度看，这是一次完整重构：&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;background: #f7f7f7;font-style: italic;padding: 1em 1em 1em 2em;border-left: 4px solid #333333;border-radius: 6px;color: rgba(0, 0, 0, 0.6);box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);margin-bottom: 1em;&quot; class=&quot;js_darkmode__80 js_darkmode__text__192&quot;&gt;&lt;p style=&quot;display: block;font-size: 1em;letter-spacing: 0.1em;color: #3f3f3f;margin: 0;&quot; class=&quot;js_darkmode__81 js_darkmode__text__193&quot;&gt;&lt;span class=&quot;js_darkmode__text__194&quot;&gt;从“过程式 UI” → “声明式 UI + 渲染引擎”&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__5&quot;/&gt;&lt;h3 data-heading=&quot;true&quot; style=&quot;margin: 2em 8px 0.75em 0;color: #3f3f3f;font-weight: bold;line-height: 1.2;padding-left: 12px;font-size: 16.8px;border-left: 4px solid #333333;border-bottom: 1px dashed #333333;&quot; class=&quot;js_darkmode__82 js_darkmode__text__195&quot;&gt;&lt;span class=&quot;js_darkmode__text__196&quot;&gt;但随后发生了关键转折&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__83 js_darkmode__text__197&quot;&gt;&lt;span class=&quot;js_darkmode__text__198&quot;&gt;2004 年，Longhorn 项目被全面重置：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot;js_darkmode__84 js_darkmode__text__199 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__201&quot;&gt;&lt;span class=&quot;js_darkmode__text__202&quot;&gt;• 回退到 Windows Server 2003 代码基&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__204&quot;&gt;&lt;span class=&quot;js_darkmode__text__205&quot;&gt;• 放弃部分新架构&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__87 js_darkmode__text__206&quot;&gt;&lt;span class=&quot;js_darkmode__text__207&quot;&gt;同时出现一个重要内部决策：&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;background: #f7f7f7;font-style: italic;padding: 1em 1em 1em 2em;border-left: 4px solid #333333;border-radius: 6px;color: rgba(0, 0, 0, 0.6);box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);margin-bottom: 1em;&quot; class=&quot;js_darkmode__88 js_darkmode__text__208&quot;&gt;&lt;p style=&quot;display: block;font-size: 1em;letter-spacing: 0.1em;color: #3f3f3f;margin: 0;&quot; class=&quot;js_darkmode__89 js_darkmode__text__209&quot;&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__90 js_darkmode__text__210&quot;&gt;&lt;span class=&quot;js_darkmode__text__211&quot;&gt;Windows 核心组件不再依赖 .NET 托管代码&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__91 js_darkmode__text__212&quot;&gt;&lt;span class=&quot;js_darkmode__text__213&quot;&gt;这直接导致：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot;js_darkmode__92 js_darkmode__text__214 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__216&quot;&gt;&lt;span class=&quot;js_darkmode__text__217&quot;&gt;• WPF 成为“附加层”，而非系统基础&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__219&quot;&gt;&lt;span class=&quot;js_darkmode__text__220&quot;&gt;• Windows Shell 仍使用原生技术&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__6&quot;/&gt;&lt;h2 data-heading=&quot;true&quot; style=&quot;display: table;margin: 4em auto 2em;color: #fff;background: #333333;font-weight: bold;text-align: center;padding: 0.3em 1em;border-radius: 8px;font-size: 18.2px;box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);&quot; class=&quot;js_darkmode__95 js_darkmode__text__221&quot;&gt;&lt;span class=&quot;js_darkmode__text__222&quot;&gt;五、组织结构的影响：Windows vs .NET&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__96 js_darkmode__text__223&quot;&gt;&lt;span class=&quot;js_darkmode__text__224&quot;&gt;从这一时期开始，微软内部形成两条路线：&lt;/span&gt;&lt;/p&gt;&lt;section style=&quot;font-family: -apple-system-font,BlinkMacSystemFont, Helvetica Neue, PingFang SC, Hiragino Sans GB , Microsoft YaHei UI , Microsoft YaHei ,Arial,sans-serif;font-size: 14px;line-height: 1.75;text-align: left;max-width: 100%;overflow: auto;&quot; class=&quot;js_darkmode__text__225&quot;&gt;&lt;table class=&quot;js_darkmode__97 js_darkmode__text__226&quot; width=&quot;309&quot;&gt;&lt;thead class=&quot;js_darkmode__text__227&quot;&gt;&lt;tr class=&quot;js_darkmode__text__228 firstRow&quot;&gt;&lt;th data-colwidth=&quot;148&quot; style=&quot;border: 1px solid #dfdfdf;padding: 0.25em 0.5em;color: #3f3f3f;word-break: keep-all;background: rgba(0, 0, 0, 0.05);&quot; class=&quot;js_darkmode__98 js_darkmode__text__229&quot;&gt;&lt;section class=&quot;js_darkmode__text__230&quot;&gt;&lt;span class=&quot;js_darkmode__text__231&quot;&gt;团队&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th data-colwidth=&quot;161&quot; style=&quot;border: 1px solid #dfdfdf;padding: 0.25em 0.5em;color: #3f3f3f;word-break: keep-all;background: rgba(0, 0, 0, 0.05);&quot; class=&quot;js_darkmode__99 js_darkmode__text__232&quot;&gt;&lt;section class=&quot;js_darkmode__text__233&quot;&gt;&lt;span class=&quot;js_darkmode__text__234&quot;&gt;技术方向&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody class=&quot;js_darkmode__text__235&quot;&gt;&lt;tr class=&quot;js_darkmode__text__236&quot;&gt;&lt;td data-colwidth=&quot;148&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__100 js_darkmode__text__237&quot;&gt;&lt;section class=&quot;js_darkmode__text__238&quot;&gt;&lt;span class=&quot;js_darkmode__text__239&quot;&gt;Windows 团队&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td data-colwidth=&quot;161&quot; align=&quot;left&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__101 js_darkmode__text__240&quot;&gt;&lt;section class=&quot;js_darkmode__text__241&quot;&gt;&lt;span class=&quot;js_darkmode__text__242&quot;&gt;原生 C++、Win32&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&quot;js_darkmode__text__243&quot;&gt;&lt;td data-colwidth=&quot;148&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__102 js_darkmode__text__244&quot;&gt;&lt;section class=&quot;js_darkmode__text__245&quot;&gt;&lt;span class=&quot;js_darkmode__text__246&quot;&gt;.NET 团队&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td data-colwidth=&quot;161&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__103 js_darkmode__text__247&quot;&gt;&lt;section class=&quot;js_darkmode__text__248&quot;&gt;&lt;span class=&quot;js_darkmode__text__249&quot;&gt;托管代码、WPF&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__104 js_darkmode__text__250&quot;&gt;&lt;span class=&quot;js_darkmode__text__251&quot;&gt;这不仅是技术选择，更是组织分工的体现。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__105 js_darkmode__text__252&quot;&gt;&lt;span class=&quot;js_darkmode__text__253&quot;&gt;后果是：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot;js_darkmode__106 js_darkmode__text__254 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__256&quot;&gt;&lt;span class=&quot;js_darkmode__text__257&quot;&gt;• 技术路线不统一&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__259&quot;&gt;&lt;span class=&quot;js_darkmode__text__260&quot;&gt;• 投入资源分散&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__262&quot;&gt;&lt;span class=&quot;js_darkmode__text__263&quot;&gt;• 缺乏长期一致性&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__7&quot;/&gt;&lt;h2 data-heading=&quot;true&quot; style=&quot;display: table;margin: 4em auto 2em;color: #fff;background: #333333;font-weight: bold;text-align: center;padding: 0.3em 1em;border-radius: 8px;font-size: 18.2px;box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);&quot; class=&quot;js_darkmode__110 js_darkmode__text__264&quot;&gt;&lt;span class=&quot;js_darkmode__text__265&quot;&gt;六、2007–2010：Silverlight 与战略转向&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__111 js_darkmode__text__266&quot;&gt;&lt;span class=&quot;js_darkmode__text__267&quot;&gt;&lt;span class=&quot;&quot;&gt;Silverlight&lt;/span&gt; 的定位是：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot;js_darkmode__112 js_darkmode__text__268 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__270&quot;&gt;&lt;span class=&quot;js_darkmode__text__271&quot;&gt;• 浏览器插件&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__273&quot;&gt;&lt;span class=&quot;js_darkmode__text__274&quot;&gt;• 跨平台 UI 框架&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__276&quot;&gt;&lt;span class=&quot;js_darkmode__text__277&quot;&gt;• WPF 的子集&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__116 js_darkmode__text__278&quot;&gt;&lt;span class=&quot;js_darkmode__text__279&quot;&gt;在 2010 年前，它被广泛认为是富客户端的未来。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__8&quot;/&gt;&lt;h3 data-heading=&quot;true&quot; style=&quot;margin: 2em 8px 0.75em 0;color: #3f3f3f;font-weight: bold;line-height: 1.2;padding-left: 12px;font-size: 16.8px;border-left: 4px solid #333333;border-bottom: 1px dashed #333333;&quot; class=&quot;js_darkmode__117 js_darkmode__text__280&quot;&gt;&lt;span class=&quot;js_darkmode__text__281&quot;&gt;转折点：MIX 2010&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__118 js_darkmode__text__282&quot;&gt;&lt;span class=&quot;js_darkmode__text__283&quot;&gt;在一次公开问答中，微软明确表示：&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;background: #f7f7f7;font-style: italic;padding: 1em 1em 1em 2em;border-left: 4px solid #333333;border-radius: 6px;color: rgba(0, 0, 0, 0.6);box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);margin-bottom: 1em;&quot; class=&quot;js_darkmode__119 js_darkmode__text__284&quot;&gt;&lt;p style=&quot;display: block;font-size: 1em;letter-spacing: 0.1em;color: #3f3f3f;margin: 0;&quot; class=&quot;js_darkmode__120 js_darkmode__text__285&quot;&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__121 js_darkmode__text__286&quot;&gt;&lt;span class=&quot;js_darkmode__text__287&quot;&gt;HTML5 是未来方向，Silverlight 不再作为跨平台战略。&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__122 js_darkmode__text__288&quot;&gt;&lt;span class=&quot;js_darkmode__text__289&quot;&gt;问题不在于技术选择，而在于信息传递方式：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot;js_darkmode__123 js_darkmode__text__290 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__292&quot;&gt;&lt;span class=&quot;js_darkmode__text__293&quot;&gt;• Silverlight 团队事先并不知情&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__295&quot;&gt;&lt;span class=&quot;js_darkmode__text__296&quot;&gt;• 开发者在公开场合才得知&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__9&quot;/&gt;&lt;h3 data-heading=&quot;true&quot; style=&quot;margin: 2em 8px 0.75em 0;color: #3f3f3f;font-weight: bold;line-height: 1.2;padding-left: 12px;font-size: 16.8px;border-left: 4px solid #333333;border-bottom: 1px dashed #333333;&quot; class=&quot;js_darkmode__126 js_darkmode__text__297&quot;&gt;&lt;span class=&quot;js_darkmode__text__298&quot;&gt;一个模式开始形成&lt;/span&gt;&lt;/h3&gt;&lt;blockquote style=&quot;background: #f7f7f7;font-style: italic;padding: 1em 1em 1em 2em;border-left: 4px solid #333333;border-radius: 6px;color: rgba(0, 0, 0, 0.6);box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);margin-bottom: 1em;&quot; class=&quot;js_darkmode__127 js_darkmode__text__299&quot;&gt;&lt;p style=&quot;display: block;font-size: 1em;letter-spacing: 0.1em;color: #3f3f3f;margin: 0;&quot; class=&quot;js_darkmode__128 js_darkmode__text__300&quot;&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__129 js_darkmode__text__301&quot;&gt;&lt;span class=&quot;js_darkmode__text__302&quot;&gt;技术生命周期由战略调整决定，而非技术成熟度。&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__10&quot;/&gt;&lt;h2 data-heading=&quot;true&quot; style=&quot;display: table;margin: 4em auto 2em;color: #fff;background: #333333;font-weight: bold;text-align: center;padding: 0.3em 1em;border-radius: 8px;font-size: 18.2px;box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);&quot; class=&quot;js_darkmode__130 js_darkmode__text__303&quot;&gt;&lt;span class=&quot;js_darkmode__text__304&quot;&gt;七、2012：Windows 8 与 WinRT 的分裂&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__131 js_darkmode__text__305&quot;&gt;&lt;span class=&quot;js_darkmode__text__306&quot;&gt;Windows 8 引入：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot;js_darkmode__132 js_darkmode__text__307 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__309&quot;&gt;&lt;span class=&quot;js_darkmode__text__310&quot;&gt;• Metro UI&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__312&quot;&gt;&lt;span class=&quot;js_darkmode__text__313&quot;&gt;• &lt;span class=&quot;&quot;&gt;WinRT&lt;/span&gt;（Windows Runtime）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__135 js_darkmode__text__314&quot;&gt;&lt;span class=&quot;js_darkmode__text__315&quot;&gt;其特点：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot;js_darkmode__136 js_darkmode__text__316 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__318&quot;&gt;&lt;span class=&quot;js_darkmode__text__319&quot;&gt;• 基于原生 C++&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__321&quot;&gt;&lt;span class=&quot;js_darkmode__text__322&quot;&gt;• 支持 C++ / C# / JavaScript&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__324&quot;&gt;&lt;span class=&quot;js_darkmode__text__325&quot;&gt;• 强制沙盒模型&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__11&quot;/&gt;&lt;h3 data-heading=&quot;true&quot; style=&quot;margin: 2em 8px 0.75em 0;color: #3f3f3f;font-weight: bold;line-height: 1.2;padding-left: 12px;font-size: 16.8px;border-left: 4px solid #333333;border-bottom: 1px dashed #333333;&quot; class=&quot;js_darkmode__140 js_darkmode__text__326&quot;&gt;&lt;span class=&quot;js_darkmode__text__327&quot;&gt;同时存在两套叙事&lt;/span&gt;&lt;/h3&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot;js_darkmode__141 js_darkmode__text__328 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__330&quot;&gt;&lt;span class=&quot;js_darkmode__text__331&quot;&gt;• Windows 团队：WinRT 是未来&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__333&quot;&gt;&lt;span class=&quot;js_darkmode__text__334&quot;&gt;• .NET 团队：WPF 仍然可用&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__144 js_darkmode__text__335&quot;&gt;&lt;span class=&quot;js_darkmode__text__336&quot;&gt;开发者面对的信息是：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot;js_darkmode__145 js_darkmode__text__337 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__339&quot;&gt;&lt;span class=&quot;js_darkmode__text__340&quot;&gt;• 可以用 C++&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__342&quot;&gt;&lt;span class=&quot;js_darkmode__text__343&quot;&gt;• 可以用 .NET&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__345&quot;&gt;&lt;span class=&quot;js_darkmode__text__346&quot;&gt;• 可以用 HTML + JS&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__12&quot;/&gt;&lt;h3 data-heading=&quot;true&quot; style=&quot;margin: 2em 8px 0.75em 0;color: #3f3f3f;font-weight: bold;line-height: 1.2;padding-left: 12px;font-size: 16.8px;border-left: 4px solid #333333;border-bottom: 1px dashed #333333;&quot; class=&quot;js_darkmode__149 js_darkmode__text__347&quot;&gt;&lt;span class=&quot;js_darkmode__text__348&quot;&gt;结果&lt;/span&gt;&lt;/h3&gt;&lt;blockquote style=&quot;background: #f7f7f7;font-style: italic;padding: 1em 1em 1em 2em;border-left: 4px solid #333333;border-radius: 6px;color: rgba(0, 0, 0, 0.6);box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);margin-bottom: 1em;&quot; class=&quot;js_darkmode__150 js_darkmode__text__349&quot;&gt;&lt;p style=&quot;display: block;font-size: 1em;letter-spacing: 0.1em;color: #3f3f3f;margin: 0;&quot; class=&quot;js_darkmode__151 js_darkmode__text__350&quot;&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__152 js_darkmode__text__351&quot;&gt;&lt;span class=&quot;js_darkmode__text__352&quot;&gt;没有主线，只有选项。&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__13&quot;/&gt;&lt;h2 data-heading=&quot;true&quot; style=&quot;display: table;margin: 4em auto 2em;color: #fff;background: #333333;font-weight: bold;text-align: center;padding: 0.3em 1em;border-radius: 8px;font-size: 18.2px;box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);&quot; class=&quot;js_darkmode__153 js_darkmode__text__353&quot;&gt;&lt;span class=&quot;js_darkmode__text__354&quot;&gt;八、2015：UWP 的理想与现实&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__154 js_darkmode__text__355&quot;&gt;&lt;span class=&quot;js_darkmode__text__356&quot;&gt;UWP 的目标是：&lt;/span&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__155 js_darkmode__text__357&quot;&gt;&lt;span class=&quot;js_darkmode__text__358&quot;&gt;统一所有 Windows 设备&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__359&quot;&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__156 js_darkmode__text__360&quot;&gt;&lt;span class=&quot;js_darkmode__text__361&quot;&gt;覆盖 PC、手机、Xbox、HoloLens 等平台&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__14&quot;/&gt;&lt;h3 data-heading=&quot;true&quot; style=&quot;margin: 2em 8px 0.75em 0;color: #3f3f3f;font-weight: bold;line-height: 1.2;padding-left: 12px;font-size: 16.8px;border-left: 4px solid #333333;border-bottom: 1px dashed #333333;&quot; class=&quot;js_darkmode__157 js_darkmode__text__362&quot;&gt;&lt;span class=&quot;js_darkmode__text__363&quot;&gt;现实问题&lt;/span&gt;&lt;/h3&gt;&lt;ol style=&quot;margin-left: 0;color: #3f3f3f;padding-left: 1.5em;&quot; class=&quot;js_darkmode__158 js_darkmode__text__364 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__366&quot;&gt;&lt;span class=&quot;js_darkmode__text__367&quot;&gt;1. Windows Phone 失败&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__369&quot;&gt;&lt;span class=&quot;js_darkmode__text__370&quot;&gt;2. 核心应用（Office、VS）未采用 UWP&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__372&quot;&gt;&lt;span class=&quot;js_darkmode__text__373&quot;&gt;3. 企业开发者无法接受沙盒限制&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__15&quot;/&gt;&lt;h3 data-heading=&quot;true&quot; style=&quot;margin: 2em 8px 0.75em 0;color: #3f3f3f;font-weight: bold;line-height: 1.2;padding-left: 12px;font-size: 16.8px;border-left: 4px solid #333333;border-bottom: 1px dashed #333333;&quot; class=&quot;js_darkmode__162 js_darkmode__text__374&quot;&gt;&lt;span class=&quot;js_darkmode__text__375&quot;&gt;结果&lt;/span&gt;&lt;/h3&gt;&lt;blockquote style=&quot;background: #f7f7f7;font-style: italic;padding: 1em 1em 1em 2em;border-left: 4px solid #333333;border-radius: 6px;color: rgba(0, 0, 0, 0.6);box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);margin-bottom: 1em;&quot; class=&quot;js_darkmode__163 js_darkmode__text__376&quot;&gt;&lt;p style=&quot;display: block;font-size: 1em;letter-spacing: 0.1em;color: #3f3f3f;margin: 0;&quot; class=&quot;js_darkmode__164 js_darkmode__text__377&quot;&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__165 js_darkmode__text__378&quot;&gt;&lt;span class=&quot;js_darkmode__text__379&quot;&gt;生态未形成闭环&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__16&quot;/&gt;&lt;h2 data-heading=&quot;true&quot; style=&quot;display: table;margin: 4em auto 2em;color: #fff;background: #333333;font-weight: bold;text-align: center;padding: 0.3em 1em;border-radius: 8px;font-size: 18.2px;box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);&quot; class=&quot;js_darkmode__166 js_darkmode__text__380&quot;&gt;&lt;span class=&quot;js_darkmode__text__381&quot;&gt;九、2019 之后：WinUI / Windows App SDK&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__167 js_darkmode__text__382&quot;&gt;&lt;span class=&quot;js_darkmode__text__383&quot;&gt;为修复 UWP 的局限，微软推出了：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot;js_darkmode__168 js_darkmode__text__384 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__386&quot;&gt;&lt;span class=&quot;js_darkmode__text__387&quot;&gt;•&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__170 js_darkmode__text__388&quot;&gt;&lt;span class=&quot;js_darkmode__text__389&quot;&gt;WinUI 2&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__390&quot;&gt;（基于 UWP）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__392&quot;&gt;&lt;span class=&quot;js_darkmode__text__393&quot;&gt;•&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__172 js_darkmode__text__394&quot;&gt;&lt;span class=&quot;js_darkmode__text__395&quot;&gt;WinUI 3&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__396&quot;&gt;（与操作系统解耦）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__398&quot;&gt;&lt;span class=&quot;js_darkmode__text__399&quot;&gt;•&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__174 js_darkmode__text__400&quot;&gt;&lt;span class=&quot;js_darkmode__text__401&quot;&gt;Project Reunion&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__402&quot;&gt;&amp;nbsp;→ 后改名&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__175 js_darkmode__text__403&quot;&gt;&lt;span class=&quot;js_darkmode__text__404&quot;&gt;Windows App SDK&lt;/span&gt;&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__176 js_darkmode__text__405&quot;&gt;&lt;span class=&quot;js_darkmode__text__406&quot;&gt;目标很清晰：&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;background: #f7f7f7;font-style: italic;padding: 1em 1em 1em 2em;border-left: 4px solid #333333;border-radius: 6px;color: rgba(0, 0, 0, 0.6);box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);margin-bottom: 1em;&quot; class=&quot;js_darkmode__177 js_darkmode__text__407&quot;&gt;&lt;p style=&quot;display: block;font-size: 1em;letter-spacing: 0.1em;color: #3f3f3f;margin: 0;&quot; class=&quot;js_darkmode__178 js_darkmode__text__408&quot;&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__179 js_darkmode__text__409&quot;&gt;&lt;span class=&quot;js_darkmode__text__410&quot;&gt;把 UI 框架从操作系统中剥离出来&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__17&quot;/&gt;&lt;h3 data-heading=&quot;true&quot; style=&quot;margin: 2em 8px 0.75em 0;color: #3f3f3f;font-weight: bold;line-height: 1.2;padding-left: 12px;font-size: 16.8px;border-left: 4px solid #333333;border-bottom: 1px dashed #333333;&quot; class=&quot;js_darkmode__180 js_darkmode__text__411&quot;&gt;&lt;span class=&quot;js_darkmode__text__412&quot;&gt;但问题仍然存在&lt;/span&gt;&lt;/h3&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot;js_darkmode__181 js_darkmode__text__413 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__415&quot;&gt;&lt;span class=&quot;js_darkmode__text__416&quot;&gt;• WinUI 2 与 WinUI 3 并存&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__418&quot;&gt;&lt;span class=&quot;js_darkmode__text__419&quot;&gt;• UWP 与 Win32 共存&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__421&quot;&gt;&lt;span class=&quot;js_darkmode__text__422&quot;&gt;• MAUI 又引入跨平台路径&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__185 js_darkmode__text__423&quot;&gt;&lt;span class=&quot;js_darkmode__text__424&quot;&gt;开发者得到的建议通常只有一句：&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;background: #f7f7f7;font-style: italic;padding: 1em 1em 1em 2em;border-left: 4px solid #333333;border-radius: 6px;color: rgba(0, 0, 0, 0.6);box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);margin-bottom: 1em;&quot; class=&quot;js_darkmode__186 js_darkmode__text__425&quot;&gt;&lt;p style=&quot;display: block;font-size: 1em;letter-spacing: 0.1em;color: #3f3f3f;margin: 0;&quot; class=&quot;js_darkmode__187 js_darkmode__text__426&quot;&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__188 js_darkmode__text__427&quot;&gt;&lt;span class=&quot;js_darkmode__text__428&quot;&gt;“取决于你的需求。”&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__18&quot;/&gt;&lt;h2 data-heading=&quot;true&quot; style=&quot;display: table;margin: 4em auto 2em;color: #fff;background: #333333;font-weight: bold;text-align: center;padding: 0.3em 1em;border-radius: 8px;font-size: 18.2px;box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);&quot; class=&quot;js_darkmode__189 js_darkmode__text__429&quot;&gt;&lt;span class=&quot;js_darkmode__text__430&quot;&gt;十、当前生态：多技术并存&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__190 js_darkmode__text__431&quot;&gt;&lt;span class=&quot;js_darkmode__text__432&quot;&gt;今天 Windows 上实际可用的 GUI 技术包括：&lt;/span&gt;&lt;/p&gt;&lt;h3 data-heading=&quot;true&quot; style=&quot;margin: 2em 8px 0.75em 0;color: #3f3f3f;font-weight: bold;line-height: 1.2;padding-left: 12px;font-size: 16.8px;border-left: 4px solid #333333;border-bottom: 1px dashed #333333;&quot; class=&quot;js_darkmode__191 js_darkmode__text__433&quot;&gt;&lt;span class=&quot;js_darkmode__text__434&quot;&gt;微软官方&lt;/span&gt;&lt;/h3&gt;&lt;section style=&quot;font-family: -apple-system-font,BlinkMacSystemFont, Helvetica Neue, PingFang SC, Hiragino Sans GB , Microsoft YaHei UI , Microsoft YaHei ,Arial,sans-serif;font-size: 14px;line-height: 1.75;text-align: left;max-width: 100%;overflow: auto;&quot; class=&quot;js_darkmode__text__435&quot;&gt;&lt;table class=&quot;js_darkmode__192 js_darkmode__text__436&quot; width=&quot;401&quot;&gt;&lt;thead class=&quot;js_darkmode__text__437&quot;&gt;&lt;tr class=&quot;js_darkmode__text__438 firstRow&quot;&gt;&lt;th data-colwidth=&quot;115&quot; style=&quot;border: 1px solid #dfdfdf;padding: 0.25em 0.5em;color: #3f3f3f;word-break: keep-all;background: rgba(0, 0, 0, 0.05);&quot; class=&quot;js_darkmode__193 js_darkmode__text__439&quot;&gt;&lt;section class=&quot;js_darkmode__text__440&quot;&gt;&lt;span class=&quot;js_darkmode__text__441&quot;&gt;技术&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th data-colwidth=&quot;286&quot; style=&quot;border: 1px solid #dfdfdf;padding: 0.25em 0.5em;color: #3f3f3f;word-break: keep-all;background: rgba(0, 0, 0, 0.05);&quot; class=&quot;js_darkmode__194 js_darkmode__text__442&quot;&gt;&lt;section class=&quot;js_darkmode__text__443&quot;&gt;&lt;span class=&quot;js_darkmode__text__444&quot;&gt;简介&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody class=&quot;js_darkmode__text__445&quot;&gt;&lt;tr class=&quot;js_darkmode__text__446&quot;&gt;&lt;td data-colwidth=&quot;115&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__195 js_darkmode__text__447&quot;&gt;&lt;section class=&quot;js_darkmode__text__448&quot;&gt;&lt;span class=&quot;js_darkmode__text__449&quot;&gt;Win32&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td data-colwidth=&quot;286&quot; align=&quot;left&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__196 js_darkmode__text__450&quot;&gt;&lt;section class=&quot;js_darkmode__text__451&quot;&gt;&lt;span class=&quot;js_darkmode__text__452&quot;&gt;Windows 最底层原生 API，提供最直接的系统调用能力&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&quot;js_darkmode__text__453&quot;&gt;&lt;td data-colwidth=&quot;115&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__197 js_darkmode__text__454&quot;&gt;&lt;section class=&quot;js_darkmode__text__455&quot;&gt;&lt;span class=&quot;js_darkmode__text__456&quot;&gt;MFC&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td data-colwidth=&quot;286&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__198 js_darkmode__text__457&quot;&gt;&lt;section class=&quot;js_darkmode__text__458&quot;&gt;&lt;span class=&quot;js_darkmode__text__459&quot;&gt;基于 Win32 的 C++ 封装框架，用于快速构建传统桌面应用&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&quot;js_darkmode__text__460&quot;&gt;&lt;td data-colwidth=&quot;115&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__199 js_darkmode__text__461&quot;&gt;&lt;section class=&quot;js_darkmode__text__462&quot;&gt;&lt;span class=&quot;js_darkmode__text__463&quot;&gt;WinForms&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td data-colwidth=&quot;286&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__200 js_darkmode__text__464&quot;&gt;&lt;section class=&quot;js_darkmode__text__465&quot;&gt;&lt;span class=&quot;js_darkmode__text__466&quot;&gt;.NET 早期桌面 UI 框架，基于事件驱动和 GDI+ 渲染&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&quot;js_darkmode__text__467&quot;&gt;&lt;td data-colwidth=&quot;115&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__201 js_darkmode__text__468&quot;&gt;&lt;section class=&quot;js_darkmode__text__469&quot;&gt;&lt;span class=&quot;js_darkmode__text__470&quot;&gt;WPF&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td data-colwidth=&quot;286&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__202 js_darkmode__text__471&quot;&gt;&lt;section class=&quot;js_darkmode__text__472&quot;&gt;&lt;span class=&quot;js_darkmode__text__473&quot;&gt;基于 XAML 和 DirectX 的现代桌面 UI 框架，支持数据绑定和 MVVM&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&quot;js_darkmode__text__474&quot;&gt;&lt;td data-colwidth=&quot;115&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__203 js_darkmode__text__475&quot;&gt;&lt;section class=&quot;js_darkmode__text__476&quot;&gt;&lt;span class=&quot;js_darkmode__text__477&quot;&gt;WinUI 3&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td data-colwidth=&quot;286&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__204 js_darkmode__text__478&quot;&gt;&lt;section class=&quot;js_darkmode__text__479&quot;&gt;&lt;span class=&quot;js_darkmode__text__480&quot;&gt;微软新一代原生 UI 框架，使用 Fluent Design，面向未来 Windows 应用&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&quot;js_darkmode__text__481&quot;&gt;&lt;td data-colwidth=&quot;115&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__205 js_darkmode__text__482&quot;&gt;&lt;section class=&quot;js_darkmode__text__483&quot;&gt;&lt;span class=&quot;js_darkmode__text__484&quot;&gt;MAUI&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td data-colwidth=&quot;286&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__206 js_darkmode__text__485&quot;&gt;&lt;section class=&quot;js_darkmode__text__486&quot;&gt;&lt;span class=&quot;js_darkmode__text__487&quot;&gt;跨平台 UI 框架，一套代码支持 Windows、macOS、iOS 和 Android&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;figure style=&quot;margin: 1.5em 8px;color: #3f3f3f;&quot; class=&quot;js_darkmode__207&quot;&gt;&lt;img class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.562962962962963&quot; data-s=&quot;300,640&quot; data-type=&quot;png&quot; data-w=&quot;1080&quot; type=&quot;block&quot; data-imgfileid=&quot;100019531&quot; data-aistatus=&quot;1&quot; style=&quot;height: auto !important; visibility: visible !important; width: 504px !important;&quot; data-src=&quot;https://mmbiz.qpic.cn/mmbiz_png/6VQeTr8b6J1uw6J4BCwOyKnHWvPEu77wbSUgxBKb7Qh5Q38DPVP3GBXich144s8qtIzlTnBS8ic9KzVOBNLBhazfJQq27ezj1GK2AOibIpO1Cw/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=2&quot; data-original-style=&quot;height: auto !important;&quot; data-index=&quot;2&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_png/6VQeTr8b6J1uw6J4BCwOyKnHWvPEu77wbSUgxBKb7Qh5Q38DPVP3GBXich144s8qtIzlTnBS8ic9KzVOBNLBhazfJQq27ezj1GK2AOibIpO1Cw/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=2&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776148944363&quot; data-report-img-idx=&quot;2&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__19&quot;/&gt;&lt;h3 data-heading=&quot;true&quot; style=&quot;margin: 2em 8px 0.75em 0;color: #3f3f3f;font-weight: bold;line-height: 1.2;padding-left: 12px;font-size: 16.8px;border-left: 4px solid #333333;border-bottom: 1px dashed #333333;&quot; class=&quot;js_darkmode__208 js_darkmode__text__488&quot;&gt;&lt;span class=&quot;js_darkmode__text__489&quot;&gt;Web 混合&lt;/span&gt;&lt;/h3&gt;&lt;section style=&quot;font-family: -apple-system-font,BlinkMacSystemFont, Helvetica Neue, PingFang SC, Hiragino Sans GB , Microsoft YaHei UI , Microsoft YaHei ,Arial,sans-serif;font-size: 14px;line-height: 1.75;text-align: left;max-width: 100%;overflow: auto;&quot; class=&quot;js_darkmode__text__490&quot;&gt;&lt;table class=&quot;js_darkmode__209 js_darkmode__text__491&quot; width=&quot;399&quot;&gt;&lt;thead class=&quot;js_darkmode__text__492&quot;&gt;&lt;tr class=&quot;js_darkmode__text__493 firstRow&quot;&gt;&lt;th data-colwidth=&quot;132&quot; style=&quot;border: 1px solid #dfdfdf;padding: 0.25em 0.5em;color: #3f3f3f;word-break: keep-all;background: rgba(0, 0, 0, 0.05);&quot; class=&quot;js_darkmode__210 js_darkmode__text__494&quot;&gt;&lt;section class=&quot;js_darkmode__text__495&quot;&gt;&lt;span class=&quot;js_darkmode__text__496&quot;&gt;技术&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th data-colwidth=&quot;267&quot; style=&quot;border: 1px solid #dfdfdf;padding: 0.25em 0.5em;color: #3f3f3f;word-break: keep-all;background: rgba(0, 0, 0, 0.05);&quot; class=&quot;js_darkmode__211 js_darkmode__text__497&quot;&gt;&lt;section class=&quot;js_darkmode__text__498&quot;&gt;&lt;span class=&quot;js_darkmode__text__499&quot;&gt;简介&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody class=&quot;js_darkmode__text__500&quot;&gt;&lt;tr class=&quot;js_darkmode__text__501&quot;&gt;&lt;td data-colwidth=&quot;132&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__212 js_darkmode__text__502&quot;&gt;&lt;section class=&quot;js_darkmode__text__503&quot;&gt;&lt;span class=&quot;js_darkmode__text__504&quot;&gt;Blazor Hybrid&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td data-colwidth=&quot;267&quot; valign=&quot;top&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__213 js_darkmode__text__505&quot;&gt;&lt;section class=&quot;js_darkmode__text__506&quot;&gt;&lt;span class=&quot;js_darkmode__text__507&quot;&gt;使用 C# 构建 UI，通过 WebView 承载，实现 Web + 原生混合应用&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&quot;js_darkmode__text__508&quot;&gt;&lt;td data-colwidth=&quot;132&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__214 js_darkmode__text__509&quot;&gt;&lt;section class=&quot;js_darkmode__text__510&quot;&gt;&lt;span class=&quot;js_darkmode__text__511&quot;&gt;WebView2&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td data-colwidth=&quot;267&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__215 js_darkmode__text__512&quot;&gt;&lt;section class=&quot;js_darkmode__text__513&quot;&gt;&lt;span class=&quot;js_darkmode__text__514&quot;&gt;基于 Chromium 的嵌入式浏览器，用于在桌面应用中运行 Web UI&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__20&quot;/&gt;&lt;h3 data-heading=&quot;true&quot; style=&quot;margin: 2em 8px 0.75em 0;color: #3f3f3f;font-weight: bold;line-height: 1.2;padding-left: 12px;font-size: 16.8px;border-left: 4px solid #333333;border-bottom: 1px dashed #333333;&quot; class=&quot;js_darkmode__216 js_darkmode__text__515&quot;&gt;&lt;span class=&quot;js_darkmode__text__516&quot;&gt;第三方&lt;/span&gt;&lt;/h3&gt;&lt;section style=&quot;font-family: -apple-system-font,BlinkMacSystemFont, Helvetica Neue, PingFang SC, Hiragino Sans GB , Microsoft YaHei UI , Microsoft YaHei ,Arial,sans-serif;font-size: 14px;line-height: 1.75;text-align: left;max-width: 100%;overflow: auto;&quot; class=&quot;js_darkmode__text__517&quot;&gt;&lt;table class=&quot;js_darkmode__217 js_darkmode__text__518&quot; width=&quot;374&quot;&gt;&lt;thead class=&quot;js_darkmode__text__519&quot;&gt;&lt;tr class=&quot;js_darkmode__text__520 firstRow&quot;&gt;&lt;th data-colwidth=&quot;110&quot; style=&quot;border: 1px solid #dfdfdf;padding: 0.25em 0.5em;color: #3f3f3f;word-break: keep-all;background: rgba(0, 0, 0, 0.05);&quot; class=&quot;js_darkmode__218 js_darkmode__text__521&quot;&gt;&lt;section class=&quot;js_darkmode__text__522&quot;&gt;&lt;span class=&quot;js_darkmode__text__523&quot;&gt;技术&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th data-colwidth=&quot;264&quot; style=&quot;border: 1px solid #dfdfdf;padding: 0.25em 0.5em;color: #3f3f3f;word-break: keep-all;background: rgba(0, 0, 0, 0.05);&quot; class=&quot;js_darkmode__219 js_darkmode__text__524&quot;&gt;&lt;section class=&quot;js_darkmode__text__525&quot;&gt;&lt;span class=&quot;js_darkmode__text__526&quot;&gt;简介&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody class=&quot;js_darkmode__text__527&quot;&gt;&lt;tr class=&quot;js_darkmode__text__528&quot;&gt;&lt;td data-colwidth=&quot;110&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__220 js_darkmode__text__529&quot;&gt;&lt;section class=&quot;js_darkmode__text__530&quot;&gt;&lt;span class=&quot;js_darkmode__text__531&quot;&gt;Electron&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td data-colwidth=&quot;264&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__221 js_darkmode__text__532&quot;&gt;&lt;section class=&quot;js_darkmode__text__533&quot;&gt;&lt;span class=&quot;js_darkmode__text__534&quot;&gt;基于 Chromium 和 Node.js 的桌面应用框架，使用 Web 技术开发&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&quot;js_darkmode__text__535&quot;&gt;&lt;td data-colwidth=&quot;110&quot; align=&quot;left&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__222 js_darkmode__text__536&quot;&gt;&lt;section class=&quot;js_darkmode__text__537&quot;&gt;&lt;span class=&quot;js_darkmode__text__538&quot;&gt;Flutter&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td data-colwidth=&quot;264&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__223 js_darkmode__text__539&quot;&gt;&lt;section class=&quot;js_darkmode__text__540&quot;&gt;&lt;span class=&quot;js_darkmode__text__541&quot;&gt;Google 推出的跨平台 UI 框架，使用自绘引擎渲染界面&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&quot;js_darkmode__text__542&quot;&gt;&lt;td data-colwidth=&quot;110&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__224 js_darkmode__text__543&quot;&gt;&lt;section class=&quot;js_darkmode__text__544&quot;&gt;&lt;span class=&quot;js_darkmode__text__545&quot;&gt;Qt&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td data-colwidth=&quot;264&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__225 js_darkmode__text__546&quot;&gt;&lt;section class=&quot;js_darkmode__text__547&quot;&gt;&lt;span class=&quot;js_darkmode__text__548&quot;&gt;成熟的跨平台 C++ 框架，广泛用于工业级桌面应用开发&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&quot;js_darkmode__text__549&quot;&gt;&lt;td data-colwidth=&quot;110&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__226 js_darkmode__text__550&quot;&gt;&lt;section class=&quot;js_darkmode__text__551&quot;&gt;&lt;span class=&quot;js_darkmode__text__552&quot;&gt;Avalonia&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td data-colwidth=&quot;264&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__227 js_darkmode__text__553&quot;&gt;&lt;section class=&quot;js_darkmode__text__554&quot;&gt;&lt;span class=&quot;js_darkmode__text__555&quot;&gt;类似 WPF 的跨平台 .NET UI 框架，支持多操作系统&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&quot;js_darkmode__text__556&quot;&gt;&lt;td data-colwidth=&quot;110&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__228 js_darkmode__text__557&quot;&gt;&lt;section class=&quot;js_darkmode__text__558&quot;&gt;&lt;span class=&quot;js_darkmode__text__559&quot;&gt;Tauri&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td data-colwidth=&quot;264&quot; style=&quot;border: 1px solid #dfdfdf;color: #3f3f3f;word-break: keep-all;padding: 0.5em 1em;&quot; class=&quot;js_darkmode__229 js_darkmode__text__560&quot;&gt;&lt;section class=&quot;js_darkmode__text__561&quot;&gt;&lt;span class=&quot;js_darkmode__text__562&quot;&gt;基于 Rust + WebView 的轻量级桌面应用框架，资源占用较低&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__21&quot;/&gt;&lt;h3 data-heading=&quot;true&quot; style=&quot;margin: 2em 8px 0.75em 0;color: #3f3f3f;font-weight: bold;line-height: 1.2;padding-left: 12px;font-size: 16.8px;border-left: 4px solid #333333;border-bottom: 1px dashed #333333;&quot; class=&quot;js_darkmode__230 js_darkmode__text__563&quot;&gt;&lt;span class=&quot;js_darkmode__text__564&quot;&gt;一个值得注意的现象&lt;/span&gt;&lt;/h3&gt;&lt;blockquote style=&quot;background: #f7f7f7;font-style: italic;padding: 1em 1em 1em 2em;border-left: 4px solid #333333;border-radius: 6px;color: rgba(0, 0, 0, 0.6);box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);margin-bottom: 1em;&quot; class=&quot;js_darkmode__231 js_darkmode__text__565&quot;&gt;&lt;p style=&quot;display: block;font-size: 1em;letter-spacing: 0.1em;color: #3f3f3f;margin: 0;&quot; class=&quot;js_darkmode__232 js_darkmode__text__566&quot;&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__233 js_darkmode__text__567&quot;&gt;&lt;span class=&quot;js_darkmode__text__568&quot;&gt;Electron 成为事实上的主流桌面 UI 技术之一&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__234 js_darkmode__text__569&quot;&gt;&lt;span class=&quot;js_darkmode__text__570&quot;&gt;而它：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot;js_darkmode__235 js_darkmode__text__571 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__573&quot;&gt;&lt;span class=&quot;js_darkmode__text__574&quot;&gt;• 基于 Chromium&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__576&quot;&gt;&lt;span class=&quot;js_darkmode__text__577&quot;&gt;• 与 Windows 原生体系无关&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__22&quot;/&gt;&lt;h2 data-heading=&quot;true&quot; style=&quot;display: table;margin: 4em auto 2em;color: #fff;background: #333333;font-weight: bold;text-align: center;padding: 0.3em 1em;border-radius: 8px;font-size: 18.2px;box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);&quot; class=&quot;js_darkmode__238 js_darkmode__text__578&quot;&gt;&lt;span class=&quot;js_darkmode__text__579&quot;&gt;十一、问题归因&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__239 js_darkmode__text__580&quot;&gt;&lt;span class=&quot;js_darkmode__text__581&quot;&gt;回顾历史，大多数失败并非技术本身，而源于三类深层因素：&lt;/span&gt;&lt;/p&gt;&lt;h3 data-heading=&quot;true&quot; style=&quot;margin: 2em 8px 0.75em 0;color: #3f3f3f;font-weight: bold;line-height: 1.2;padding-left: 12px;font-size: 16.8px;border-left: 4px solid #333333;border-bottom: 1px dashed #333333;&quot; class=&quot;js_darkmode__240 js_darkmode__text__582&quot;&gt;&lt;span class=&quot;js_darkmode__text__583&quot;&gt;1. 组织分裂&lt;/span&gt;&lt;/h3&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot;js_darkmode__241 js_darkmode__text__584 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__586&quot;&gt;&lt;span class=&quot;js_darkmode__text__587&quot;&gt;• Windows 与 .NET 长期战略不一致，团队目标分散，技术路线摇摆不定。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-heading=&quot;true&quot; style=&quot;margin: 2em 8px 0.75em 0;color: #3f3f3f;font-weight: bold;line-height: 1.2;padding-left: 12px;font-size: 16.8px;border-left: 4px solid #333333;border-bottom: 1px dashed #333333;&quot; class=&quot;js_darkmode__243 js_darkmode__text__588&quot;&gt;&lt;span class=&quot;js_darkmode__text__589&quot;&gt;2. 发布驱动决策&lt;/span&gt;&lt;/h3&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot;js_darkmode__244 js_darkmode__text__590 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__592&quot;&gt;&lt;span class=&quot;js_darkmode__text__593&quot;&gt;• 技术过早亮相开发者大会，推动上市节奏超过了成熟度，导致实际落地困难。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-heading=&quot;true&quot; style=&quot;margin: 2em 8px 0.75em 0;color: #3f3f3f;font-weight: bold;line-height: 1.2;padding-left: 12px;font-size: 16.8px;border-left: 4px solid #333333;border-bottom: 1px dashed #333333;&quot; class=&quot;js_darkmode__246 js_darkmode__text__594&quot;&gt;&lt;span class=&quot;js_darkmode__text__595&quot;&gt;3. 战略转向&lt;/span&gt;&lt;/h3&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot;js_darkmode__247 js_darkmode__text__596 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__598&quot;&gt;&lt;span class=&quot;js_darkmode__text__599&quot;&gt;• 从 Silverlight 到 UWP，微软多次调整桌面战略，优化方向频繁变化，让开发者难以形成长期规划。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__23&quot;/&gt;&lt;h2 data-heading=&quot;true&quot; style=&quot;display: table;margin: 4em auto 2em;color: #fff;background: #333333;font-weight: bold;text-align: center;padding: 0.3em 1em;border-radius: 8px;font-size: 18.2px;box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);&quot; class=&quot;js_darkmode__249 js_darkmode__text__600&quot;&gt;&lt;span class=&quot;js_darkmode__text__601&quot;&gt;十二、关键结论：缺少“完整策略”&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__250 js_darkmode__text__602&quot;&gt;&lt;span class=&quot;js_darkmode__text__603&quot;&gt;成功的平台，不只是技术，更要覆盖整个生命周期：&lt;/span&gt;&lt;/p&gt;&lt;ol style=&quot;margin-left: 0;color: #3f3f3f;padding-left: 1.5em;&quot; class=&quot;js_darkmode__251 js_darkmode__text__604 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__606&quot;&gt;&lt;span class=&quot;js_darkmode__text__607&quot;&gt;1. 如何起步&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__609&quot;&gt;&lt;span class=&quot;js_darkmode__text__610&quot;&gt;2. 是否值得长期投入&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__612&quot;&gt;&lt;span class=&quot;js_darkmode__text__613&quot;&gt;3. 如何维护&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__615&quot;&gt;&lt;span class=&quot;js_darkmode__text__616&quot;&gt;4. 如何迁移&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__256 js_darkmode__text__617&quot;&gt;&lt;span class=&quot;js_darkmode__text__618&quot;&gt;如果这些问题没有答案，那么：&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;background: #f7f7f7;font-style: italic;padding: 1em 1em 1em 2em;border-left: 4px solid #333333;border-radius: 6px;color: rgba(0, 0, 0, 0.6);box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);margin-bottom: 1em;&quot; class=&quot;js_darkmode__257 js_darkmode__text__619&quot;&gt;&lt;p style=&quot;display: block;font-size: 1em;letter-spacing: 0.1em;color: #3f3f3f;margin: 0;&quot; class=&quot;js_darkmode__258 js_darkmode__text__620&quot;&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__259 js_darkmode__text__621&quot;&gt;&lt;span class=&quot;js_darkmode__text__622&quot;&gt;平台提供的只是技术，而不是可行路径。&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__24&quot;/&gt;&lt;h2 data-heading=&quot;true&quot; style=&quot;display: table;margin: 4em auto 2em;color: #fff;background: #333333;font-weight: bold;text-align: center;padding: 0.3em 1em;border-radius: 8px;font-size: 18.2px;box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);&quot; class=&quot;js_darkmode__260 js_darkmode__text__623&quot;&gt;&lt;span class=&quot;js_darkmode__text__624&quot;&gt;结语&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__261 js_darkmode__text__625&quot;&gt;&lt;span class=&quot;js_darkmode__text__626&quot;&gt;Windows 曾经提供过一个明确答案：Win32 + 消息循环模型。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__262 js_darkmode__text__627&quot;&gt;&lt;span class=&quot;js_darkmode__text__628&quot;&gt;开发者面对的是一个确定的世界：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot;js_darkmode__263 js_darkmode__text__629 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__631&quot;&gt;&lt;span class=&quot;js_darkmode__text__632&quot;&gt;• 一个运行时（Windows）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__634&quot;&gt;&lt;span class=&quot;js_darkmode__text__635&quot;&gt;• 一套 API（Win32）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__637&quot;&gt;&lt;span class=&quot;js_darkmode__text__638&quot;&gt;• 一个编程模型（消息驱动）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__267 js_darkmode__text__639&quot;&gt;&lt;span class=&quot;js_darkmode__text__640&quot;&gt;路径清晰，成本可预期。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__25&quot;/&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__268 js_darkmode__text__641&quot;&gt;&lt;span class=&quot;js_darkmode__text__642&quot;&gt;今天，它提供的是一组技术选项：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot;js_darkmode__269 js_darkmode__text__643 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__645&quot;&gt;&lt;span class=&quot;js_darkmode__text__646&quot;&gt;• Win32、WPF、WinUI、MAUI&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__648&quot;&gt;&lt;span class=&quot;js_darkmode__text__649&quot;&gt;• WebView、Blazor、Electron&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__651&quot;&gt;&lt;span class=&quot;js_darkmode__text__652&quot;&gt;• 以及各种跨平台方案&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__273 js_darkmode__text__653&quot;&gt;&lt;span class=&quot;js_darkmode__text__654&quot;&gt;从工程角度看，这意味着：&lt;/span&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__274 js_darkmode__text__655&quot;&gt;&lt;span class=&quot;js_darkmode__text__656&quot;&gt;平台从“确定性”走向了“选择性”。&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__275 js_darkmode__text__657&quot;&gt;&lt;span class=&quot;js_darkmode__text__658&quot;&gt;而在高成本领域，这种变化并不总是进步。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__276 js_darkmode__text__659&quot;&gt;&lt;span class=&quot;js_darkmode__text__660&quot;&gt;选择的增加，往往伴随着：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot;js_darkmode__277 js_darkmode__text__661 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__663&quot;&gt;&lt;span class=&quot;js_darkmode__text__664&quot;&gt;• 决策成本上升&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__666&quot;&gt;&lt;span class=&quot;js_darkmode__text__667&quot;&gt;• 技术路径不稳定&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__669&quot;&gt;&lt;span class=&quot;js_darkmode__text__670&quot;&gt;• 长期维护风险不可控&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__281 js_darkmode__text__671&quot;&gt;&lt;span class=&quot;js_darkmode__text__672&quot;&gt;因此，开发者真正需要的，从来不是“更多可能性”，而是：&lt;/span&gt;&lt;strong style=&quot;color: #333333;font-weight: bold;font-size: inherit;&quot; class=&quot;js_darkmode__282 js_darkmode__text__673&quot;&gt;&lt;span class=&quot;js_darkmode__text__674&quot;&gt;一条可预期、可持续的成功路径。&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;hr style=&quot;border-style: solid;border-width: 2px 0 0;border-color: rgba(0, 0, 0, 0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);height: 1px;border: none;margin: 2em 0;background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));&quot; class=&quot;js_darkmode__bg__26&quot;/&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__283 js_darkmode__text__675&quot;&gt;&lt;span class=&quot;js_darkmode__text__676&quot;&gt;有趣的是，今天最成功的桌面 UI 技术之一（Electron），反而呈现出一种“路径收敛”的特征：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot;js_darkmode__284 js_darkmode__text__677 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__679&quot;&gt;&lt;span class=&quot;js_darkmode__text__680&quot;&gt;• 一个运行时（Chromium）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__682&quot;&gt;&lt;span class=&quot;js_darkmode__text__683&quot;&gt;• 一个编程模型（HTML / CSS / JavaScript）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section class=&quot;js_darkmode__text__685&quot;&gt;&lt;span class=&quot;js_darkmode__text__686&quot;&gt;• 一条默认路径（Web 技术栈）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__288 js_darkmode__text__687&quot;&gt;&lt;span class=&quot;js_darkmode__text__688&quot;&gt;它未必是最优的技术解，但它提供了一个关键特性：一致性。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin: 1.5em 8px;letter-spacing: 0.1em;color: #3f3f3f;&quot; class=&quot;js_darkmode__289 js_darkmode__text__689&quot;&gt;&lt;span class=&quot;js_darkmode__text__690&quot;&gt;而这，正是 Windows 在过去三十年中逐渐失去的东西。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-heading=&quot;true&quot; style=&quot;margin: 2em 8px 0.5em;color: #333333;font-weight: bold;font-size: 15.4px;&quot; class=&quot;js_darkmode__290 js_darkmode__text__691&quot;&gt;&lt;span class=&quot;js_darkmode__text__692&quot;&gt;引用链接&lt;/span&gt;&lt;/h4&gt;&lt;p style=&quot;letter-spacing: 0.1em;margin: 0.5em 8px;font-size: 80%;color: #3f3f3f;&quot; class=&quot;js_darkmode__291 js_darkmode__text__693&quot;&gt;&lt;code style=&quot;color: #d14;background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;font-size: 90%;opacity: 0.6;&quot; class=&quot;js_darkmode__292 js_darkmode__text__694&quot;&gt;&lt;span class=&quot;js_darkmode__text__695&quot;&gt;[1]&lt;/span&gt;&lt;/code&gt;&amp;nbsp;&lt;em style=&quot;word-break: break-all;&quot; class=&quot;js_darkmode__text__696&quot;&gt;&lt;span class=&quot;js_darkmode__text__697&quot;&gt;https://www.jsnover.com/blog/2026/03/13/microsoft-hasnt-had-a-coherent-gui-strategy-since-petzold/&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;/section&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Tue, 14 Apr 2026 14:41:59 +0800</pubDate></item><item><title>.NET程序员多少岁算高龄？打破年龄焦虑，重新定义技术人职业生命周期</title><link>https://www.codepub.top/post/256.html</link><description>&lt;p&gt;在互联网行业“35岁危机”的舆论裹挟下，程序员群体的年龄焦虑愈发普遍，而作为企业级开发主流技术栈的&lt;span class=&quot;&quot;&gt;.NET程序员&lt;/span&gt;，也难免陷入“多少岁算高龄”的自我拷问。不同于互联网大厂快节奏、高迭代的纯互联网开发，.NET技术栈深耕金融、制造、医疗、政务、企业信息化等传统与实业领域，其职业年龄边界、高龄界定标准，和大众认知中的程序员有着本质区别。&lt;br/&gt; &lt;br/&gt;本文将结合.NET行业生态、职业发展规律，客观界定.NET程序员的“高龄”分水岭，深挖年龄焦虑的核心根源，并给出大龄.NET程序员的职业破局路径，帮助每一位技术人跳出年龄陷阱，实现长期职业价值。&lt;br/&gt; &lt;br/&gt;一、行业通用认知&lt;span class=&quot;&quot;&gt;vs.NET&lt;/span&gt;专属特性：高龄年龄到底怎么算？&lt;br/&gt; &lt;br/&gt;首先要明确：程序员没有绝对的高龄年龄标准，只有行业场景下的相对界定，.NET程序员的高龄分水岭，远高于互联网行业通用标准。&lt;br/&gt; &lt;br/&gt;1. 互联网行业通用：35岁是泛程序员的“心理高龄线”&lt;br/&gt; &lt;br/&gt;放眼整个IT行业，35岁被普遍视为程序员的年龄分水岭，这一结论源于互联网大厂的用人逻辑：互联网业务追求快速迭代、极致效率，企业更倾向于招聘精力充沛、薪资成本更低、能适配高强度加班的年轻开发者；同时，互联网技术更新速度极快，大龄程序员若陷入重复编码，缺乏技术深度和视野提升，很容易被市场淘汰。&lt;br/&gt; &lt;br/&gt;相关行业数据显示，一线互联网大厂普通开发岗年龄中位数仅28岁，35岁以上程序员占比不足10%，求职、晋升都会面临明显的年龄壁垒，这也是“35岁高龄”说法的核心来源。&lt;br/&gt; &lt;br/&gt;2. .NET行业专属：40岁才是真正的职业拐点，45+才算高龄&lt;br/&gt; &lt;br/&gt;对比互联网行业，.NET程序员的职业生命周期更长，高龄界定标准直接延后5-10年，核心原因在于.NET技术栈的应用场景和行业需求：&lt;br/&gt; &lt;br/&gt;- 应用场景偏稳定型企业级开发：.NET主打Windows生态、桌面应用、企业ERP、工业软件、金融核心系统、政务平台等，这类项目追求稳定、安全、兼容，而非盲目追求技术新潮，企业更看重开发者的业务沉淀、系统架构经验、问题排查能力，而非年轻精力；&lt;br/&gt;- 技术迭代平稳，经验复利更强：从.NET Framework到.NET Core/.NET 8+，微软技术栈始终保持向下兼容，学习曲线平缓，多年积累的C#语法、架构设计、企业业务逻辑，不会因技术升级彻底作废，大龄程序员的经验具备长期价值；&lt;br/&gt;- 行业用人更务实，年龄偏见更低：深耕.NET的企业多为传统实业、中大型软件服务商、政企合作单位，这类企业淘汰机制更温和，不盲目追求年轻化，反而青睐10年以上经验的资深.NET开发者，40岁左右依然是核心技术骨干。&lt;br/&gt; &lt;br/&gt;综上，对于.NET程序员：35-40岁属于资深成熟期，并非高龄；40-45岁是职业关键拐点，需完成能力升维；45岁以上，若仍停留在初级、中级编码岗，缺乏核心竞争力，才会陷入真正的高龄职场困境。&lt;br/&gt; &lt;br/&gt;二、.NET程序员的年龄焦虑，从来不是年龄本身，而是能力断层&lt;br/&gt; &lt;br/&gt;很多.NET程序员刚过35岁就陷入高龄焦虑，本质上是把互联网行业的焦虑强行套在自己身上，忽略了.NET生态的独特性。真正让.NET程序员陷入职业危机的，从来不是年龄数字，而是这三大能力断层：&lt;br/&gt; &lt;br/&gt;1. 技术深度不足，停留在“CRUD码农”层面&lt;br/&gt; &lt;br/&gt;年轻开发者可以靠快速上手、加班完成基础的增删改查开发，但35岁之后，若始终只会业务代码编写，不懂系统架构、性能优化、分布式设计、云原生适配，面对复杂业务场景和系统故障毫无解决能力，就会被更年轻、成本更低的开发者替代，这是年龄焦虑的核心根源。&lt;br/&gt; &lt;br/&gt;2. 业务沉淀缺失，缺乏行业专属竞争力&lt;br/&gt; &lt;br/&gt;.NET开发高度依赖业务场景，金融、制造、医疗等行业的业务逻辑、合规要求、系统流程，是年轻开发者短时间无法掌握的核心资产。若多年工作只专注代码，不深耕行业业务，不理解业务痛点，就会变成“无差别编码工具”，失去不可替代性。&lt;br/&gt; &lt;br/&gt;3. 职业路径固化，拒绝能力升维&lt;br/&gt; &lt;br/&gt;部分.NET程序员安于现状，始终局限在后端开发单一岗位，既不向架构师、技术专家深耕，也不向技术管理、项目管理转型，更不接触云原生、微服务、AI+.NET等前沿技术，随着年龄增长，体力、学习精力下降，自然会被行业边缘化。&lt;br/&gt; &lt;br/&gt;三、大龄.NET程序员破局：打造年龄无关的核心竞争力&lt;br/&gt; &lt;br/&gt;对于35岁+的.NET程序员，无需被年龄数字裹挟，只要找准方向、补齐能力短板，完全可以打破高龄壁垒，实现职业进阶，核心有三大路径：&lt;br/&gt; &lt;br/&gt;1. 技术专家路线：深耕架构，成为领域技术权威&lt;br/&gt; &lt;br/&gt;放弃重复的基础编码工作，聚焦.NET架构设计、系统优化、技术攻坚，成为企业级系统架构师、技术专家：&lt;br/&gt; &lt;br/&gt;- 深耕.NET云原生、微服务、分布式架构，掌握ASP.NET Core高级开发、Docker容器化、&lt;span class=&quot;&quot;&gt;K8s部署&lt;/span&gt;、Redis缓存、MQ消息队列等核心技术；&lt;br/&gt;- 聚焦性能调优、故障排查、安全防护，解决年轻开发者无法处理的复杂系统问题；&lt;br/&gt;- 考取微软Azure架构师、.NET相关专业认证，提升行业认可度；&lt;br/&gt;- 参与开源项目、输出技术博客，打造个人技术IP，积累行业影响力。&lt;br/&gt; &lt;br/&gt;2. 技术管理路线：转向团队管理，实现角色升维&lt;br/&gt; &lt;br/&gt;凭借多年项目经验，从纯技术开发转向技术团队管理、项目管理，发挥经验优势：&lt;br/&gt; &lt;br/&gt;- 从开发组长、技术经理做起，掌握团队管理、项目进度把控、需求沟通、资源协调能力；&lt;br/&gt;- 兼顾技术决策与团队赋能，既能把控项目技术方案，又能带领团队高效落地；&lt;br/&gt;- 适配企业管理岗需求，平衡技术能力与管理思维，摆脱纯编码的年龄限制。&lt;br/&gt; &lt;br/&gt;3. 业务+技术复合路线：成为行业解决方案专家&lt;br/&gt; &lt;br/&gt;结合.NET深耕的行业场景，走“技术+业务”复合路线，成为行业专属解决方案专家：&lt;br/&gt; &lt;br/&gt;- 深耕金融、制造、政务等单一行业，吃透行业业务规则、合规要求、数字化痛点；&lt;br/&gt;- 转型解决方案架构师、售前技术顾问，为客户提供定制化.NET系统解决方案；&lt;br/&gt;- 依托业务+技术双重优势，转向产品经理、行业数字化顾问，跳出纯技术竞争赛道。&lt;br/&gt; &lt;br/&gt;四、写在最后：年龄不是枷锁，能力才是底气&lt;br/&gt; &lt;br/&gt;对于.NET程序员而言，年龄从来不是判断高龄的标准，停滞不前的能力才是。&lt;br/&gt; &lt;br/&gt;互联网行业的35岁危机，本质是浮躁、快节奏生态下的用人筛选，而.NET技术栈依托稳定的企业级市场，给了技术人长期成长的空间。35岁不是职业终点，而是从初级开发者向资深专家、管理者转型的起点；40岁不是职场淘汰线，而是经验沉淀、价值爆发的黄金期。&lt;br/&gt; &lt;br/&gt;与其纠结多少岁算高龄，不如专注于自身能力的提升：持续深耕.NET技术、沉淀行业业务、拓展职业边界，让自己的价值随着年龄增长不断复利。真正优秀的.NET技术人，无论多少岁，都能在行业中找到属于自己的位置，年龄只会成为经验的勋章，而非职业的枷锁。&lt;/p&gt;</description><pubDate>Tue, 14 Apr 2026 09:48:00 +0800</pubDate></item><item><title>.NET开发者必须了解的两大日志神器</title><link>https://www.codepub.top/post/255.html</link><description>&lt;section&gt;&lt;span style=&quot;color: #0F1115;font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;#39;Segoe UI&amp;#39;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;#39;Open Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: #FFFFFF&quot; data-pm-slice=&quot;0 0 []&quot; class=&quot;js_darkmode__0 js_darkmode__text__1&quot;&gt;.NET圈，有两款经过千万级项目验证的“老牌”日志框架，能帮你把日志写得明明白白——&lt;/span&gt;&lt;strong style=&quot;font-weight: 600;color: rgb(15, 17, 21);font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;#39;Segoe UI&amp;#39;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;#39;Open Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255)&quot; class=&quot;js_darkmode__1 js_darkmode__text__3&quot;&gt;NLog&lt;/strong&gt;&lt;span style=&quot;color: #0F1115;font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;#39;Segoe UI&amp;#39;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;#39;Open Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: #FFFFFF&quot; class=&quot;js_darkmode__2 js_darkmode__text__5&quot;&gt;&amp;nbsp;和&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;font-weight: 600;color: rgb(15, 17, 21);font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;#39;Segoe UI&amp;#39;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;#39;Open Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255)&quot; class=&quot;js_darkmode__3 js_darkmode__text__7&quot;&gt;&lt;span class=&quot;&quot;&gt;log4net&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;color: #0F1115;font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;#39;Segoe UI&amp;#39;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;#39;Open Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: #FFFFFF&quot; class=&quot;js_darkmode__4 js_darkmode__text__9&quot;&gt;。今天就来聊聊它们到底有什么用、怎么用，以及两行命令就能装进Visual Studio。&lt;/span&gt;&lt;/section&gt;&lt;h2 style=&quot;font: 700 22px / 32px quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;#39;Segoe UI&amp;#39;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;#39;Open Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, sans-serif;margin: 32px 0px 16px;color: rgb(15, 17, 21);letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255)&quot; data-pm-slice=&quot;0 0 []&quot; class=&quot;js_darkmode__5 js_darkmode__text__11&quot;&gt;一、 为什么要用日志框架？&lt;/h2&gt;&lt;p style=&quot;margin: 16px 0px;color: rgb(15, 17, 21);font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;#39;Segoe UI&amp;#39;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;#39;Open Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255)&quot; class=&quot;js_darkmode__6 js_darkmode__text__13&quot;&gt;很多新手觉得日志就是把话打印出来。但其实在生产环境，日志是&lt;strong style=&quot;font-weight: 600&quot;&gt;唯一能在不打断程序运行的情况下，窥探程序内部状态的“眼睛”&lt;/strong&gt;。&lt;/p&gt;&lt;p style=&quot;margin: 16px 0px;color: rgb(15, 17, 21);font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;#39;Segoe UI&amp;#39;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;#39;Open Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255)&quot; class=&quot;js_darkmode__7 js_darkmode__text__18&quot;&gt;这两款框架解决了三个核心痛点：&lt;/p&gt;&lt;ol style=&quot;margin: 16px 0px;padding-left: 18px;color: rgb(15, 17, 21);font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;#39;Segoe UI&amp;#39;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;#39;Open Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255)&quot; class=&quot;js_darkmode__8 js_darkmode__text__20 list-paddingleft-2&quot; start=&quot;1&quot;&gt;&lt;li&gt;&lt;p style=&quot;margin-top: 0px !important;margin-right: 0px;margin-bottom: 0px;margin-left: 0px&quot;&gt;&lt;strong style=&quot;font-weight: 600&quot;&gt;想存哪就存哪（灵活性）&lt;/strong&gt;：不用改代码，改个配置就能把日志从“控制台”切到“数据库”或“文件” 。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;margin-top: 0px !important;margin-right: 0px;margin-bottom: 0px;margin-left: 0px&quot;&gt;&lt;strong style=&quot;font-weight: 600&quot;&gt;想记啥就记啥（分级过滤）&lt;/strong&gt;：开发时想看&lt;code style=&quot;box-sizing: border-box;font-style: normal;font-variant: normal;font-weight: 400;font-stretch: 100%;line-height: 22px;font-optical-sizing: auto;font-size-adjust: none;font-kerning: auto;font-feature-settings: normal;font-variation-settings: normal;font-language-override: normal;font-family: Menlo, Monaco, Consolas, &amp;#39;Cascadia Mono&amp;#39;, &amp;#39;Ubuntu Mono&amp;#39;, &amp;#39;DejaVu Sans Mono&amp;#39;, &amp;#39;Liberation Mono&amp;#39;, &amp;#39;JetBrains Mono&amp;#39;, &amp;#39;Fira Code&amp;#39;, Cousine, &amp;#39;Roboto Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, sans-serif, system-ui;background-color: rgb(235, 238, 242);border-radius: 6px;align-items: center;padding: 0px 5px;display: inline-flex;font-size: 0.875em !important&quot; class=&quot;js_darkmode__9 js_darkmode__text__31&quot;&gt;Debug&lt;/code&gt;细枝末节，上线后只想看&lt;code style=&quot;box-sizing: border-box;font-style: normal;font-variant: normal;font-weight: 400;font-stretch: 100%;line-height: 22px;font-optical-sizing: auto;font-size-adjust: none;font-kerning: auto;font-feature-settings: normal;font-variation-settings: normal;font-language-override: normal;font-family: Menlo, Monaco, Consolas, &amp;#39;Cascadia Mono&amp;#39;, &amp;#39;Ubuntu Mono&amp;#39;, &amp;#39;DejaVu Sans Mono&amp;#39;, &amp;#39;Liberation Mono&amp;#39;, &amp;#39;JetBrains Mono&amp;#39;, &amp;#39;Fira Code&amp;#39;, Cousine, &amp;#39;Roboto Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, sans-serif, system-ui;background-color: rgb(235, 238, 242);border-radius: 6px;align-items: center;padding: 0px 5px;display: inline-flex;font-size: 0.875em !important&quot; class=&quot;js_darkmode__10 js_darkmode__text__34&quot;&gt;Error&lt;/code&gt;报错，改配置就行 。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;margin-top: 0px !important;margin-right: 0px;margin-bottom: 0px;margin-left: 0px&quot;&gt;&lt;strong style=&quot;font-weight: 600&quot;&gt;性能飞起（异步处理）&lt;/strong&gt;：记日志这个动作不能拖垮业务。它们都支持&lt;strong style=&quot;font-weight: 600&quot;&gt;异步记录&lt;/strong&gt;，写日志不会卡住你的主程序 。&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 style=&quot;font: 700 22px / 32px quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;#39;Segoe UI&amp;#39;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;#39;Open Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, sans-serif;margin: 32px 0px 16px;color: rgb(15, 17, 21);letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255)&quot; data-pm-slice=&quot;0 0 []&quot; class=&quot;js_darkmode__11 js_darkmode__text__45&quot;&gt;二、 两大神器简介与官网&lt;/h2&gt;&lt;h3 style=&quot;font: 700 20px / 30px quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;#39;Segoe UI&amp;#39;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;#39;Open Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, sans-serif;margin: 32px 0px 16px;color: rgb(15, 17, 21);letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255)&quot; data-pm-slice=&quot;0 0 []&quot; class=&quot;js_darkmode__12 js_darkmode__text__47&quot;&gt;1. NLog：灵活的全能选手&lt;/h3&gt;&lt;p&gt;&lt;section style=&quot;text-align: center&quot;&gt;&lt;img class=&quot;rich_pages wxw-img&quot; data-aistatus=&quot;1&quot; data-imgfileid=&quot;100000805&quot; data-ratio=&quot;0.48148148148148145&quot; data-s=&quot;300,640&quot; data-src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/pJbk7dGRBW4oFANjUIpJs41UVS2w6PQ1AXPKnPGic5bia3jWhyicvLTWSSia1cmWiaCj84KWRjoiaG3xThRt7NH3xZzgewqibCiaJnelqALhgaytdicM/640?wx_fmt=png&amp;amp;from=appmsg&amp;amp;watermark=1#imgIndex=0&quot; data-type=&quot;png&quot; data-w=&quot;1080&quot; type=&quot;block&quot; data-original-style=&quot;null&quot; data-index=&quot;0&quot; src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/pJbk7dGRBW4oFANjUIpJs41UVS2w6PQ1AXPKnPGic5bia3jWhyicvLTWSSia1cmWiaCj84KWRjoiaG3xThRt7NH3xZzgewqibCiaJnelqALhgaytdicM/640?wx_fmt=png&amp;from=appmsg&amp;wxfrom=13&amp;tp=wxpic&amp;watermark=1#imgIndex=0&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; data-sec-load-status=&quot;2&quot; style=&quot;height: auto !important;visibility: visible !important;width: 520px !important&quot; data-report-img-idx=&quot;0&quot; alt=&quot;图片&quot;/&gt;&lt;/section&gt;&lt;/p&gt;&lt;p style=&quot;margin: 16px 0px;color: rgb(15, 17, 21);font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;#39;Segoe UI&amp;#39;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;#39;Open Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255)&quot; class=&quot;js_darkmode__13 js_darkmode__text__49&quot;&gt;&lt;span class=&quot;&quot;&gt;NLog&lt;/span&gt;是近年来社区更活跃的选择。它最大的特点就是&lt;strong style=&quot;font-weight: 600&quot;&gt;配置极其灵活&lt;/strong&gt;，支持热重载——改完配置文件不用重启程序就能生效 。&lt;/p&gt;&lt;ul style=&quot;margin: 16px 0px;padding-left: 18px;color: rgb(15, 17, 21);font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;#39;Segoe UI&amp;#39;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;#39;Open Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255)&quot; class=&quot;js_darkmode__14 js_darkmode__text__54 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p style=&quot;margin-top: 0px !important;margin-right: 0px;margin-bottom: 0px;margin-left: 0px&quot;&gt;&lt;strong style=&quot;font-weight: 600&quot;&gt;官网&lt;/strong&gt;：&lt;/p&gt;&lt;section class=&quot;code-snippet__fix code-snippet__js js_darkmode__text__60&quot;&gt;&lt;pre class=&quot;code-snippet__js js_darkmode__text__61&quot; data-lang=&quot;javascript&quot;&gt;https://nlog-project.org/&lt;/pre&gt;&lt;/section&gt;&lt;/li&gt;&lt;ul class=&quot;code-snippet__line-index code-snippet__js list-paddingleft-2&quot; style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;br/&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: square;&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;/ul&gt;&lt;li&gt;&lt;p style=&quot;margin-top: 0px !important;margin-right: 0px;margin-bottom: 0px;margin-left: 0px&quot;&gt;内置超过20种输出目标（&lt;span class=&quot;&quot;&gt;Targets&lt;/span&gt;），不仅支持文件、数据库，还支持发邮件、写到Kafka、&lt;span class=&quot;&quot;&gt;Elasticsearch&lt;/span&gt;，架构越复杂它越香 。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 style=&quot;font: 700 20px / 30px quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;#39;Segoe UI&amp;#39;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;#39;Open Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, sans-serif;margin: 32px 0px 16px;color: rgb(15, 17, 21);letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255)&quot; class=&quot;js_darkmode__15 js_darkmode__text__69&quot;&gt;2. log4net：经典的稳定之选&lt;/h3&gt;&lt;p&gt;&lt;section style=&quot;text-align: center&quot;&gt;&lt;img class=&quot;rich_pages wxw-img&quot; data-aistatus=&quot;1&quot; data-imgfileid=&quot;100000806&quot; data-ratio=&quot;0.48148148148148145&quot; data-s=&quot;300,640&quot; data-src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/pJbk7dGRBW6ZhBpibFWShrwgbib03ODaxNw5Zpv4gXCltVOVgpwBUicI8RJxiacARewk8xicj1jRWLXtFV8EfqXGibibByUvNu1ibHZiciatHw7PIBGFg/640?wx_fmt=png&amp;amp;from=appmsg&amp;amp;watermark=1#imgIndex=1&quot; data-type=&quot;png&quot; data-w=&quot;1080&quot; type=&quot;block&quot; data-original-style=&quot;null&quot; data-index=&quot;1&quot; src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/pJbk7dGRBW6ZhBpibFWShrwgbib03ODaxNw5Zpv4gXCltVOVgpwBUicI8RJxiacARewk8xicj1jRWLXtFV8EfqXGibibByUvNu1ibHZiciatHw7PIBGFg/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1&amp;watermark=1#imgIndex=1&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; style=&quot;height: auto !important;visibility: visible !important;width: 677px !important&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776131225124&quot; data-report-img-idx=&quot;1&quot; data-fail=&quot;0&quot;/&gt;&lt;/section&gt;&lt;/p&gt;&lt;p style=&quot;margin: 16px 0px;color: rgb(15, 17, 21);font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;#39;Segoe UI&amp;#39;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;#39;Open Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255)&quot; class=&quot;js_darkmode__16 js_darkmode__text__71&quot;&gt;log4net是Apache基金会的官方项目，血统纯正。如果你的项目是传统的&lt;strong style=&quot;font-weight: 600&quot;&gt;WinForm&lt;/strong&gt;或&lt;strong style=&quot;font-weight: 600&quot;&gt;WPF&lt;/strong&gt;，log4net是最稳重的选择，很多老牌国企、金融项目都在用它 。&lt;/p&gt;&lt;ul style=&quot;margin: 16px 0px;padding-left: 18px;color: rgb(15, 17, 21);font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;#39;Segoe UI&amp;#39;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;#39;Open Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255)&quot; class=&quot;js_darkmode__17 js_darkmode__text__79 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p style=&quot;margin-top: 0px !important;margin-right: 0px;margin-bottom: 0px;margin-left: 0px&quot;&gt;&lt;strong style=&quot;font-weight: 600&quot;&gt;官网&lt;/strong&gt;：&lt;/p&gt;&lt;section class=&quot;code-snippet__fix code-snippet__js js_darkmode__text__85&quot;&gt;&lt;pre class=&quot;code-snippet__js js_darkmode__text__86&quot; data-lang=&quot;javascript&quot;&gt;https://logging.apache.org/log4net/&lt;/pre&gt;&lt;/section&gt;&lt;/li&gt;&lt;ul class=&quot;code-snippet__line-index code-snippet__js list-paddingleft-2&quot; style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;br/&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;p style=&quot;margin-top: 0px !important;margin-right: 0px;margin-bottom: 0px;margin-left: 0px&quot;&gt;借鉴了经典的&lt;code style=&quot;box-sizing: border-box;font-style: normal;font-variant: normal;font-weight: 400;font-stretch: 100%;line-height: 22px;font-optical-sizing: auto;font-size-adjust: none;font-kerning: auto;font-feature-settings: normal;font-variation-settings: normal;font-language-override: normal;font-family: Menlo, Monaco, Consolas, &amp;#39;Cascadia Mono&amp;#39;, &amp;#39;Ubuntu Mono&amp;#39;, &amp;#39;DejaVu Sans Mono&amp;#39;, &amp;#39;Liberation Mono&amp;#39;, &amp;#39;JetBrains Mono&amp;#39;, &amp;#39;Fira Code&amp;#39;, Cousine, &amp;#39;Roboto Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, sans-serif, system-ui;background-color: rgb(235, 238, 242);border-radius: 6px;align-items: center;padding: 0px 5px;display: inline-flex;font-size: 0.875em !important&quot; class=&quot;js_darkmode__18 js_darkmode__text__94&quot;&gt;log4j&lt;/code&gt;架构，分层清晰，文档齐全，社区成熟度高，遇到问题几乎都能搜到答案 。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 data-pm-slice=&quot;0 0 []&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 22px&quot;&gt;&amp;nbsp;三、 安装指南&lt;/span&gt;&lt;/strong&gt;&lt;br/&gt;&lt;/h2&gt;&lt;h2 data-pm-slice=&quot;0 0 []&quot;&gt;&lt;span style=&quot;color: #0F1115;font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;#39;Segoe UI&amp;#39;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;#39;Open Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: #FFFFFF&quot; data-pm-slice=&quot;0 0 []&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;font-weight: 600;color: rgb(15, 17, 21);font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;#39;Segoe UI&amp;#39;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;#39;Open Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255)&quot; class=&quot;js_darkmode__20 js_darkmode__text__102&quot;&gt;一行命令，立刻上手&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;&lt;section class=&quot;code-snippet__fix code-snippet__js js_darkmode__text__104&quot;&gt;&lt;ul class=&quot;code-snippet__line-index code-snippet__js list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre class=&quot;code-snippet__js js_darkmode__text__105&quot; data-lang=&quot;powershell&quot;&gt;&lt;code&gt;&lt;span class=&quot;code-snippet__comment js_darkmode__text__108&quot;&gt;# NLog&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span class=&quot;code-snippet__built_in js_darkmode__text__111&quot;&gt;Install-Package&lt;/span&gt;&amp;nbsp;NLog&lt;/code&gt;&lt;code&gt;&lt;br/&gt;&lt;/code&gt;&lt;code&gt;&lt;span class=&quot;code-snippet__comment js_darkmode__text__114&quot;&gt;# log4net &amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span class=&quot;code-snippet__built_in js_darkmode__text__117&quot;&gt;Install-Package&lt;/span&gt;&amp;nbsp;log4net&lt;/code&gt;&lt;/pre&gt;&lt;/section&gt;&lt;/p&gt;&lt;pre&gt;&lt;br/&gt;&lt;/pre&gt;&lt;pre&gt;或者自己去NuGet包下载&lt;/pre&gt;&lt;p&gt;&lt;section style=&quot;text-align: center&quot;&gt;&lt;img class=&quot;rich_pages wxw-img&quot; data-aistatus=&quot;1&quot; data-imgfileid=&quot;100000808&quot; data-ratio=&quot;0.22058823529411764&quot; data-s=&quot;300,640&quot; data-src=&quot;https://mmbiz.qpic.cn/mmbiz_png/pJbk7dGRBW7b0treQQ7pRmrcpwaJjvweYNkhXKZYXSVp7jGhzkVHydOZBjkDzuXsZ7C5yUadMyzic2HWWCZ90cbIQsqkQADdeZmxlfSkbD2o/640?wx_fmt=png&amp;amp;from=appmsg&amp;amp;watermark=1#imgIndex=2&quot; data-type=&quot;png&quot; data-w=&quot;884&quot; type=&quot;block&quot; data-original-style=&quot;null&quot; data-index=&quot;2&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_png/pJbk7dGRBW7b0treQQ7pRmrcpwaJjvweYNkhXKZYXSVp7jGhzkVHydOZBjkDzuXsZ7C5yUadMyzic2HWWCZ90cbIQsqkQADdeZmxlfSkbD2o/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1&amp;watermark=1#imgIndex=2&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; style=&quot;height: auto !important;visibility: visible !important;width: 677px !important&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776131237321&quot; data-report-img-idx=&quot;2&quot; data-fail=&quot;0&quot;/&gt;&lt;/section&gt;&lt;section style=&quot;text-align: center&quot;&gt;&lt;img class=&quot;rich_pages wxw-img&quot; data-aistatus=&quot;1&quot; data-imgfileid=&quot;100000809&quot; data-ratio=&quot;0.14629629629629629&quot; data-s=&quot;300,640&quot; data-src=&quot;https://mmbiz.qpic.cn/mmbiz_png/pJbk7dGRBW5Kc66B49oibSmlZuCia5kf5w1aHayk52ejOVljQLtR8kfZictic7I0wNcbxVjxYr7riaHpr6JuwXJWPbWqWgUlb81U2nZZemt2E8xQ/640?wx_fmt=png&amp;amp;from=appmsg&amp;amp;watermark=1#imgIndex=3&quot; data-type=&quot;png&quot; data-w=&quot;1080&quot; type=&quot;block&quot; data-original-style=&quot;null&quot; data-index=&quot;3&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_png/pJbk7dGRBW5Kc66B49oibSmlZuCia5kf5w1aHayk52ejOVljQLtR8kfZictic7I0wNcbxVjxYr7riaHpr6JuwXJWPbWqWgUlb81U2nZZemt2E8xQ/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1&amp;watermark=1#imgIndex=3&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; style=&quot;height: auto !important;visibility: visible !important;width: 677px !important&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776131237850&quot; data-report-img-idx=&quot;3&quot; data-fail=&quot;0&quot;/&gt;&lt;/section&gt;&lt;/p&gt;&lt;h3 style=&quot;font: 700 20px / 30px quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;#39;Segoe UI&amp;#39;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;#39;Open Sans&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, sans-serif;margin: 32px 0px 16px;color: rgb(15, 17, 21);letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255)&quot; data-pm-slice=&quot;0 0 []&quot;&gt;&lt;br/&gt;&lt;/h3&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Tue, 14 Apr 2026 09:47:24 +0800</pubDate></item><item><title>.NET 官方团队发布的 .NET Agent Skills，告别 AI 编程幻觉！</title><link>https://www.codepub.top/post/254.html</link><description>&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgb(0, 0, 0);border-left-color: rgb(0, 0, 0);border-right-color: rgb(0, 0, 0);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: block;flex-direction: unset;float: unset;height: auto;justify-content: unset;line-height: 1.5em;overflow-x: unset;overflow-y: unset;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;text-align: left;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__1 js_darkmode__text__1&quot;&gt;&lt;span style=&quot;font-size: 20px;color: #009688;line-height: 1.8em;letter-spacing: 0em;padding-top: 0px;padding-bottom: 0px;padding-left: 10px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: solid;border-right-style: none;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 3px;border-right-width: 1px;border-top-color: #000000;border-bottom-color: #000000;border-left-color: #009688;border-right-color: #000000;border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;box-shadow: none;display: block;font-weight: bold;flex-direction: unset;float: unset;height: auto;justify-content: unset;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;overflow-x: unset;overflow-y: unset;text-align: left;text-indent: 0em;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__2 js_darkmode__text__2&quot;&gt;&lt;span class=&quot;js_darkmode__text__3&quot;&gt;前言&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;color: rgb(0, 0, 0);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__3 js_darkmode__text__4&quot;&gt;&lt;span class=&quot;js_darkmode__text__5&quot;&gt;你是否也曾被 AI 编程助手的“幻觉”搞得头疼？明明写的是 .NET 代码，它却给你甩来 Java 的解决方案；明明你在用 .NET 10 + Minimal API，它却在教你用&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js_darkmode__text__6&quot;&gt;ASP.NET Web Forms&lt;/span&gt;&lt;span class=&quot;js_darkmode__text__7&quot;&gt;&amp;nbsp;的写法。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;color: rgb(0, 0, 0);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__4 js_darkmode__text__8&quot;&gt;&lt;span class=&quot;js_darkmode__text__9&quot;&gt;现在 .NET 官方团队发布了 .NET Agent Skills（&lt;/span&gt;&lt;strong style=&quot;color: rgb(0, 150, 136);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__5 js_darkmode__text__10&quot;&gt;&lt;span class=&quot;js_darkmode__text__11&quot;&gt;dotnet/skills&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__12&quot;&gt;），一套专为 AI 编码 Agent 打造的 .NET 官方技能库（Agent Skills）。它就像给 Copilot CLI、&lt;span class=&quot;&quot;&gt;Claude Code&lt;/span&gt;、Codex CLI 等 AI 工具装上了&amp;quot;专业大脑&amp;quot;，让它们真正理解 .NET 的框架、API 、单元测试和最佳实践等，从此告别胡说八道，写出靠谱代码。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img class=&quot;rich_pages wxw-img js_darkmode__6&quot; data-aistatus=&quot;1&quot; data-imgfileid=&quot;100037091&quot; data-ratio=&quot;0.662962962962963&quot; data-src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/ttprHEnDlg56w2rxElkZiavFqDiceJTet5Ap0HMgI3l3wNVpcIlv313MMF6X8PaEkl7oyia1agXMNGY6ZTKpHLmC0PWeO12ibDkPvLb8eeZibM00/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=1&quot; data-type=&quot;png&quot; data-w=&quot;1080&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 500px !important;&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;1&quot; src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/ttprHEnDlg56w2rxElkZiavFqDiceJTet5Ap0HMgI3l3wNVpcIlv313MMF6X8PaEkl7oyia1agXMNGY6ZTKpHLmC0PWeO12ibDkPvLb8eeZibM00/640?wx_fmt=png&amp;from=appmsg&amp;wxfrom=13&amp;tp=wxpic#imgIndex=1&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; data-sec-load-status=&quot;2&quot; data-report-img-idx=&quot;1&quot; alt=&quot;图片&quot;/&gt;&lt;/figure&gt;&lt;/p&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgb(0, 0, 0);border-left-color: rgb(0, 0, 0);border-right-color: rgb(0, 0, 0);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: block;flex-direction: unset;float: unset;height: auto;justify-content: unset;line-height: 1.5em;overflow-x: unset;overflow-y: unset;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;text-align: left;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__7 js_darkmode__text__13&quot;&gt;&lt;span style=&quot;font-size: 20px;color: #009688;line-height: 1.8em;letter-spacing: 0em;padding-top: 0px;padding-bottom: 0px;padding-left: 10px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: solid;border-right-style: none;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 3px;border-right-width: 1px;border-top-color: #000000;border-bottom-color: #000000;border-left-color: #009688;border-right-color: #000000;border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;box-shadow: none;display: block;font-weight: bold;flex-direction: unset;float: unset;height: auto;justify-content: unset;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;overflow-x: unset;overflow-y: unset;text-align: left;text-indent: 0em;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__8 js_darkmode__text__14&quot;&gt;&lt;span class=&quot;js_darkmode__text__15&quot;&gt;Agent Skills 介绍&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;color: rgb(0, 0, 0);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__9 js_darkmode__text__16&quot;&gt;&lt;span class=&quot;js_darkmode__text__17&quot;&gt;Agent Skills（智能体技能） 是一套将专业知识与工作流规范封装为可复用资产的标准化解决方案。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;color: rgb(0, 0, 0);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__10 js_darkmode__text__18&quot;&gt;&lt;span class=&quot;js_darkmode__text__19&quot;&gt;它本质上是一个模块化的 Markdown 文件，能够：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot;js_darkmode__11 js_darkmode__text__20 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__12 js_darkmode__text__22&quot;&gt;&lt;span class=&quot;js_darkmode__text__23&quot;&gt;支持自动触发，无需手动输入提示词&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__13 js_darkmode__text__25&quot;&gt;&lt;span class=&quot;js_darkmode__text__26&quot;&gt;支持团队共享，统一团队协作标准&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__14 js_darkmode__text__28&quot;&gt;&lt;span class=&quot;js_darkmode__text__29&quot;&gt;支持工程化管理，纳入版本控制与 CI/CD 流程&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__15 js_darkmode__text__31&quot;&gt;&lt;span class=&quot;js_darkmode__text__32&quot;&gt;教会 AI 工具（如 Claude、Copilot、Cursor 等）精准执行特定任务&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;color: rgb(0, 0, 0);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__16 js_darkmode__text__33&quot;&gt;&lt;span class=&quot;js_darkmode__text__34&quot;&gt;从此，告别重复造轮子，让 AI 编程真正走向专业化、规模化。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img class=&quot;rich_pages wxw-img js_darkmode__17&quot; data-aistatus=&quot;1&quot; data-imgfileid=&quot;100037093&quot; data-ratio=&quot;0.5518518518518518&quot; data-src=&quot;https://mmbiz.qpic.cn/mmbiz_png/ttprHEnDlg4XfkTLicoyekuEspicAQm9H196ddad9JnK0V82XThctLEfzuib8UqoLVwt1ibJa9mdbzejgmN6Wia7ggw7Ga3VcjibbuGGHMr76Yj6M/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=2&quot; data-type=&quot;png&quot; data-w=&quot;1080&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 657px !important;&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;2&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_png/ttprHEnDlg4XfkTLicoyekuEspicAQm9H196ddad9JnK0V82XThctLEfzuib8UqoLVwt1ibJa9mdbzejgmN6Wia7ggw7Ga3VcjibbuGGHMr76Yj6M/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=2&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776131141617&quot; data-report-img-idx=&quot;2&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;/p&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgb(0, 0, 0);border-left-color: rgb(0, 0, 0);border-right-color: rgb(0, 0, 0);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: block;flex-direction: unset;float: unset;height: auto;justify-content: unset;line-height: 1.5em;overflow-x: unset;overflow-y: unset;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;text-align: left;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__18 js_darkmode__text__35&quot;&gt;&lt;span style=&quot;font-size: 20px;color: #009688;line-height: 1.8em;letter-spacing: 0em;padding-top: 0px;padding-bottom: 0px;padding-left: 10px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: solid;border-right-style: none;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 3px;border-right-width: 1px;border-top-color: #000000;border-bottom-color: #000000;border-left-color: #009688;border-right-color: #000000;border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;box-shadow: none;display: block;font-weight: bold;flex-direction: unset;float: unset;height: auto;justify-content: unset;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;overflow-x: unset;overflow-y: unset;text-align: left;text-indent: 0em;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__19 js_darkmode__text__36&quot;&gt;&lt;span class=&quot;js_darkmode__text__37&quot;&gt;.NET Agent Skills&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;color: rgb(0, 0, 0);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__20 js_darkmode__text__38&quot;&gt;&lt;span class=&quot;js_darkmode__text__39&quot;&gt;目前 dotnet/skills 仓库已经涵盖了从核心开发到高性能诊断的多个领域插件：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;overflow-x: auto;&quot; class=&quot;js_darkmode__text__40&quot;&gt;&lt;table class=&quot;js_darkmode__text__41&quot;&gt;&lt;thead class=&quot;js_darkmode__text__42&quot;&gt;&lt;tr class=&quot;js_darkmode__text__43 firstRow&quot;&gt;&lt;th style=&quot;color: rgb(255, 255, 255);font-size: 16px;line-height: 1.5em;letter-spacing: 0em;text-align: left;font-weight: bold;background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(0, 150, 136);height: auto;border-style: solid;border-width: 1px;border-color: rgb(0, 150, 136);border-radius: 0px;padding: 5px 10px;min-width: 85px;&quot; class=&quot;js_darkmode__text__44&quot;&gt;&lt;section class=&quot;js_darkmode__text__45&quot;&gt;&lt;span class=&quot;js_darkmode__text__46&quot;&gt;插件&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;color: rgb(255, 255, 255);font-size: 16px;line-height: 1.5em;letter-spacing: 0em;text-align: left;font-weight: bold;background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(0, 150, 136);height: auto;border-style: solid;border-width: 1px;border-color: rgb(0, 150, 136);border-radius: 0px;padding: 5px 10px;min-width: 85px;&quot; class=&quot;js_darkmode__text__47&quot;&gt;&lt;section class=&quot;js_darkmode__text__48&quot;&gt;&lt;span class=&quot;js_darkmode__text__49&quot;&gt;描述&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody class=&quot;js_darkmode__text__50&quot;&gt;&lt;tr style=&quot;color: rgb(0, 0, 0);background-attachment: scroll;background-clip: border-box;background-color: rgb(255, 255, 255);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;&quot; class=&quot;js_darkmode__21 js_darkmode__text__51&quot;&gt;&lt;td style=&quot;padding-top: 5px;padding-right: 10px;padding-bottom: 5px;padding-left: 10px;min-width: 85px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-style: solid;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 150, 136);border-bottom-color: rgb(0, 150, 136);border-left-color: rgb(0, 150, 136);border-right-color: rgb(0, 150, 136);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__text__52&quot;&gt;&lt;code class=&quot;js_darkmode__text__53&quot;&gt;&lt;span class=&quot;js_darkmode__text__54&quot;&gt;dotnet&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;padding-top: 5px;padding-right: 10px;padding-bottom: 5px;padding-left: 10px;min-width: 85px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-style: solid;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 150, 136);border-bottom-color: rgb(0, 150, 136);border-left-color: rgb(0, 150, 136);border-right-color: rgb(0, 150, 136);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__text__55&quot;&gt;&lt;section class=&quot;js_darkmode__text__56&quot;&gt;&lt;span class=&quot;js_darkmode__text__57&quot;&gt;用于处理常见 .NET 编码任务的核心 .NET 技能集合。&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;color: rgb(0, 0, 0);background-attachment: scroll;background-clip: border-box;background-color: rgb(248, 248, 248);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;&quot; class=&quot;js_darkmode__22 js_darkmode__text__58&quot;&gt;&lt;td style=&quot;padding-top: 5px;padding-right: 10px;padding-bottom: 5px;padding-left: 10px;min-width: 85px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-style: solid;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 150, 136);border-bottom-color: rgb(0, 150, 136);border-left-color: rgb(0, 150, 136);border-right-color: rgb(0, 150, 136);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__text__59&quot;&gt;&lt;code class=&quot;js_darkmode__text__60&quot;&gt;&lt;span class=&quot;js_darkmode__text__61&quot;&gt;dotnet-data&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;padding-top: 5px;padding-right: 10px;padding-bottom: 5px;padding-left: 10px;min-width: 85px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-style: solid;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 150, 136);border-bottom-color: rgb(0, 150, 136);border-left-color: rgb(0, 150, 136);border-right-color: rgb(0, 150, 136);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__text__62&quot;&gt;&lt;section class=&quot;js_darkmode__text__63&quot;&gt;&lt;span class=&quot;js_darkmode__text__64&quot;&gt;用于 .NET 数据访问及 Entity Framework 相关任务的技能。&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;color: rgb(0, 0, 0);background-attachment: scroll;background-clip: border-box;background-color: rgb(255, 255, 255);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;&quot; class=&quot;js_darkmode__23 js_darkmode__text__65&quot;&gt;&lt;td style=&quot;padding-top: 5px;padding-right: 10px;padding-bottom: 5px;padding-left: 10px;min-width: 85px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-style: solid;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 150, 136);border-bottom-color: rgb(0, 150, 136);border-left-color: rgb(0, 150, 136);border-right-color: rgb(0, 150, 136);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__text__66&quot;&gt;&lt;code class=&quot;js_darkmode__text__67&quot;&gt;&lt;span class=&quot;js_darkmode__text__68&quot;&gt;dotnet-diag&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;padding-top: 5px;padding-right: 10px;padding-bottom: 5px;padding-left: 10px;min-width: 85px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-style: solid;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 150, 136);border-bottom-color: rgb(0, 150, 136);border-left-color: rgb(0, 150, 136);border-right-color: rgb(0, 150, 136);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__text__69&quot;&gt;&lt;section class=&quot;js_darkmode__text__70&quot;&gt;&lt;span class=&quot;js_darkmode__text__71&quot;&gt;用于 .NET 性能调查、调试与事件分析的技能。&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;color: rgb(0, 0, 0);background-attachment: scroll;background-clip: border-box;background-color: rgb(248, 248, 248);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;&quot; class=&quot;js_darkmode__24 js_darkmode__text__72&quot;&gt;&lt;td style=&quot;padding-top: 5px;padding-right: 10px;padding-bottom: 5px;padding-left: 10px;min-width: 85px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-style: solid;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 150, 136);border-bottom-color: rgb(0, 150, 136);border-left-color: rgb(0, 150, 136);border-right-color: rgb(0, 150, 136);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__text__73&quot;&gt;&lt;code class=&quot;js_darkmode__text__74&quot;&gt;&lt;span class=&quot;js_darkmode__text__75&quot;&gt;dotnet-msbuild&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;padding-top: 5px;padding-right: 10px;padding-bottom: 5px;padding-left: 10px;min-width: 85px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-style: solid;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 150, 136);border-bottom-color: rgb(0, 150, 136);border-left-color: rgb(0, 150, 136);border-right-color: rgb(0, 150, 136);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__text__76&quot;&gt;&lt;section class=&quot;js_darkmode__text__77&quot;&gt;&lt;span class=&quot;js_darkmode__text__78&quot;&gt;全面的 MSBuild 与 .NET 构建技能：故障诊断、性能优化、代码质量提升及现代化改造。&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;color: rgb(0, 0, 0);background-attachment: scroll;background-clip: border-box;background-color: rgb(255, 255, 255);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;&quot; class=&quot;js_darkmode__25 js_darkmode__text__79&quot;&gt;&lt;td style=&quot;padding-top: 5px;padding-right: 10px;padding-bottom: 5px;padding-left: 10px;min-width: 85px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-style: solid;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 150, 136);border-bottom-color: rgb(0, 150, 136);border-left-color: rgb(0, 150, 136);border-right-color: rgb(0, 150, 136);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__text__80&quot;&gt;&lt;code class=&quot;js_darkmode__text__81&quot;&gt;&lt;span class=&quot;js_darkmode__text__82&quot;&gt;dotnet-nuget&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;padding-top: 5px;padding-right: 10px;padding-bottom: 5px;padding-left: 10px;min-width: 85px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-style: solid;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 150, 136);border-bottom-color: rgb(0, 150, 136);border-left-color: rgb(0, 150, 136);border-right-color: rgb(0, 150, 136);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__text__83&quot;&gt;&lt;section class=&quot;js_darkmode__text__84&quot;&gt;&lt;span class=&quot;js_darkmode__text__85&quot;&gt;NuGet 与 .NET 包管理技能：依赖项管理与项目现代化。&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;color: rgb(0, 0, 0);background-attachment: scroll;background-clip: border-box;background-color: rgb(248, 248, 248);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;&quot; class=&quot;js_darkmode__26 js_darkmode__text__86&quot;&gt;&lt;td style=&quot;padding-top: 5px;padding-right: 10px;padding-bottom: 5px;padding-left: 10px;min-width: 85px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-style: solid;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 150, 136);border-bottom-color: rgb(0, 150, 136);border-left-color: rgb(0, 150, 136);border-right-color: rgb(0, 150, 136);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__text__87&quot;&gt;&lt;code class=&quot;js_darkmode__text__88&quot;&gt;&lt;span class=&quot;js_darkmode__text__89&quot;&gt;dotnet-upgrade&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;padding-top: 5px;padding-right: 10px;padding-bottom: 5px;padding-left: 10px;min-width: 85px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-style: solid;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 150, 136);border-bottom-color: rgb(0, 150, 136);border-left-color: rgb(0, 150, 136);border-right-color: rgb(0, 150, 136);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__text__90&quot;&gt;&lt;section class=&quot;js_darkmode__text__91&quot;&gt;&lt;span class=&quot;js_darkmode__text__92&quot;&gt;用于跨框架版本、语言特性及兼容性目标迁移和升级 .NET 项目的技能。&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;color: rgb(0, 0, 0);background-attachment: scroll;background-clip: border-box;background-color: rgb(255, 255, 255);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;&quot; class=&quot;js_darkmode__27 js_darkmode__text__93&quot;&gt;&lt;td style=&quot;padding-top: 5px;padding-right: 10px;padding-bottom: 5px;padding-left: 10px;min-width: 85px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-style: solid;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 150, 136);border-bottom-color: rgb(0, 150, 136);border-left-color: rgb(0, 150, 136);border-right-color: rgb(0, 150, 136);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__text__94&quot;&gt;&lt;code class=&quot;js_darkmode__text__95&quot;&gt;&lt;span class=&quot;js_darkmode__text__96&quot;&gt;dotnet-maui&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;padding-top: 5px;padding-right: 10px;padding-bottom: 5px;padding-left: 10px;min-width: 85px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-style: solid;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 150, 136);border-bottom-color: rgb(0, 150, 136);border-left-color: rgb(0, 150, 136);border-right-color: rgb(0, 150, 136);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__text__97&quot;&gt;&lt;section class=&quot;js_darkmode__text__98&quot;&gt;&lt;span class=&quot;js_darkmode__text__99&quot;&gt;用于 .NET MAUI 开发的技能：环境配置、诊断与故障排查。&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;color: rgb(0, 0, 0);background-attachment: scroll;background-clip: border-box;background-color: rgb(248, 248, 248);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;&quot; class=&quot;js_darkmode__28 js_darkmode__text__100&quot;&gt;&lt;td style=&quot;padding-top: 5px;padding-right: 10px;padding-bottom: 5px;padding-left: 10px;min-width: 85px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-style: solid;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 150, 136);border-bottom-color: rgb(0, 150, 136);border-left-color: rgb(0, 150, 136);border-right-color: rgb(0, 150, 136);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__text__101&quot;&gt;&lt;code class=&quot;js_darkmode__text__102&quot;&gt;&lt;span class=&quot;js_darkmode__text__103&quot;&gt;dotnet-ai&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;padding-top: 5px;padding-right: 10px;padding-bottom: 5px;padding-left: 10px;min-width: 85px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-style: solid;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 150, 136);border-bottom-color: rgb(0, 150, 136);border-left-color: rgb(0, 150, 136);border-right-color: rgb(0, 150, 136);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__text__104&quot;&gt;&lt;section class=&quot;js_darkmode__text__105&quot;&gt;&lt;span class=&quot;js_darkmode__text__106&quot;&gt;面向 .NET 的 AI/ML 技能：技术选型、LLM 集成、智能体工作流、RAG 流水线、MCP 及经典 ML 与 ML.NET 的结合应用。&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;color: rgb(0, 0, 0);background-attachment: scroll;background-clip: border-box;background-color: rgb(255, 255, 255);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;&quot; class=&quot;js_darkmode__29 js_darkmode__text__107&quot;&gt;&lt;td style=&quot;padding-top: 5px;padding-right: 10px;padding-bottom: 5px;padding-left: 10px;min-width: 85px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-style: solid;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 150, 136);border-bottom-color: rgb(0, 150, 136);border-left-color: rgb(0, 150, 136);border-right-color: rgb(0, 150, 136);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__text__108&quot;&gt;&lt;code class=&quot;js_darkmode__text__109&quot;&gt;&lt;span class=&quot;js_darkmode__text__110&quot;&gt;dotnet-template-engine&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;padding-top: 5px;padding-right: 10px;padding-bottom: 5px;padding-left: 10px;min-width: 85px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-style: solid;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 150, 136);border-bottom-color: rgb(0, 150, 136);border-left-color: rgb(0, 150, 136);border-right-color: rgb(0, 150, 136);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__text__111&quot;&gt;&lt;section class=&quot;js_darkmode__text__112&quot;&gt;&lt;span class=&quot;js_darkmode__text__113&quot;&gt;.NET 模板引擎技能：模板发现、项目脚手架搭建与模板创作。&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;color: rgb(0, 0, 0);background-attachment: scroll;background-clip: border-box;background-color: rgb(248, 248, 248);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;&quot; class=&quot;js_darkmode__30 js_darkmode__text__114&quot;&gt;&lt;td style=&quot;padding-top: 5px;padding-right: 10px;padding-bottom: 5px;padding-left: 10px;min-width: 85px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-style: solid;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 150, 136);border-bottom-color: rgb(0, 150, 136);border-left-color: rgb(0, 150, 136);border-right-color: rgb(0, 150, 136);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__text__115&quot;&gt;&lt;code class=&quot;js_darkmode__text__116&quot;&gt;&lt;span class=&quot;js_darkmode__text__117&quot;&gt;dotnet-test&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;padding-top: 5px;padding-right: 10px;padding-bottom: 5px;padding-left: 10px;min-width: 85px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-style: solid;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 150, 136);border-bottom-color: rgb(0, 150, 136);border-left-color: rgb(0, 150, 136);border-right-color: rgb(0, 150, 136);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__text__118&quot;&gt;&lt;section class=&quot;js_darkmode__text__119&quot;&gt;&lt;span class=&quot;js_darkmode__text__120&quot;&gt;用于运行、诊断与迁移 .NET 测试的技能：测试执行、筛选、平台检测及 MSTest 工作流。&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;color: rgb(0, 0, 0);background-attachment: scroll;background-clip: border-box;background-color: rgb(255, 255, 255);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;&quot; class=&quot;js_darkmode__31 js_darkmode__text__121&quot;&gt;&lt;td style=&quot;padding-top: 5px;padding-right: 10px;padding-bottom: 5px;padding-left: 10px;min-width: 85px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-style: solid;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 150, 136);border-bottom-color: rgb(0, 150, 136);border-left-color: rgb(0, 150, 136);border-right-color: rgb(0, 150, 136);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__text__122&quot;&gt;&lt;code class=&quot;js_darkmode__text__123&quot;&gt;&lt;span class=&quot;js_darkmode__text__124&quot;&gt;dotnet-aspnet&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;padding-top: 5px;padding-right: 10px;padding-bottom: 5px;padding-left: 10px;min-width: 85px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-style: solid;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 150, 136);border-bottom-color: rgb(0, 150, 136);border-left-color: rgb(0, 150, 136);border-right-color: rgb(0, 150, 136);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__text__125&quot;&gt;&lt;section class=&quot;js_darkmode__text__126&quot;&gt;&lt;span class=&quot;js_darkmode__text__127&quot;&gt;ASP.NET Core Web 开发技能：中间件、端点、实时通信及 API 设计模式。&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;/p&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgb(0, 0, 0);border-left-color: rgb(0, 0, 0);border-right-color: rgb(0, 0, 0);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: block;flex-direction: unset;float: unset;height: auto;justify-content: unset;line-height: 1.5em;overflow-x: unset;overflow-y: unset;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;text-align: left;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__32 js_darkmode__text__128&quot;&gt;&lt;span style=&quot;font-size: 20px;color: #009688;line-height: 1.8em;letter-spacing: 0em;padding-top: 0px;padding-bottom: 0px;padding-left: 10px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: solid;border-right-style: none;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 3px;border-right-width: 1px;border-top-color: #000000;border-bottom-color: #000000;border-left-color: #009688;border-right-color: #000000;border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;box-shadow: none;display: block;font-weight: bold;flex-direction: unset;float: unset;height: auto;justify-content: unset;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;overflow-x: unset;overflow-y: unset;text-align: left;text-indent: 0em;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__33 js_darkmode__text__129&quot;&gt;&lt;span class=&quot;js_darkmode__text__130&quot;&gt;Claude Code 安装&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; class=&quot;js_darkmode__34 js_darkmode__text__131 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__35 js_darkmode__text__133&quot;&gt;&lt;span class=&quot;js_darkmode__text__134&quot;&gt;打开 Claude Code 终端&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__36 js_darkmode__text__136&quot;&gt;&lt;span class=&quot;js_darkmode__text__137&quot;&gt;添加市场&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;border-radius: 5px;box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;text-align: left;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__37 js_darkmode__text__138&quot;&gt;&lt;code style=&quot;overflow-x: auto;padding: 16px;color: #abb2bf;padding-top: 15px;background: #282c34;border-radius: 5px;display: -webkit-box;font-family: Consolas, Monaco, Menlo, monospace;font-size: 12px;&quot; class=&quot;js_darkmode__38 js_darkmode__text__139&quot;&gt;&lt;span class=&quot;js_darkmode__text__140&quot;&gt;/plugin marketplace add dotnet/skills&lt;/span&gt;&lt;br/&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img class=&quot;rich_pages wxw-img js_darkmode__39&quot; data-aistatus=&quot;1&quot; data-imgfileid=&quot;100037090&quot; data-ratio=&quot;0.3152965660770031&quot; data-src=&quot;https://mmbiz.qpic.cn/mmbiz_png/ttprHEnDlg7jo8RbYYT4OCjekqZSnexGEvAvlndeQahleibPt96q2mqAHnvqoTowonVhTlvpDB3805ibGy7XGKyeWBoPzdCSDyEHNNv1XrxvQ/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=3&quot; data-type=&quot;png&quot; data-w=&quot;961&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 657px !important;&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;2&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_png/ttprHEnDlg7jo8RbYYT4OCjekqZSnexGEvAvlndeQahleibPt96q2mqAHnvqoTowonVhTlvpDB3805ibGy7XGKyeWBoPzdCSDyEHNNv1XrxvQ/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=3&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776131142454&quot; data-report-img-idx=&quot;3&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;/p&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; class=&quot;js_darkmode__40 js_darkmode__text__141 list-paddingleft-2&quot; start=&quot;3&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__41 js_darkmode__text__143&quot;&gt;&lt;span class=&quot;js_darkmode__text__144&quot;&gt;安装插件&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;border-radius: 5px;box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;text-align: left;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__42 js_darkmode__text__145&quot;&gt;&lt;code style=&quot;overflow-x: auto;padding: 16px;color: #abb2bf;padding-top: 15px;background: #282c34;border-radius: 5px;display: -webkit-box;font-family: Consolas, Monaco, Menlo, monospace;font-size: 12px;&quot; class=&quot;js_darkmode__43 js_darkmode__text__146&quot;&gt;&lt;span class=&quot;js_darkmode__text__147&quot;&gt;/plugin install &amp;lt;plugin&amp;gt;@dotnet/skills&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color: #5c6370;font-style: italic;line-height: 26px;&quot; class=&quot;js_darkmode__44 js_darkmode__text__148&quot;&gt;&lt;span class=&quot;js_darkmode__text__149&quot;&gt;# 安装用于处理常见 .NET 编码任务的核心 .NET 技能集合&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span class=&quot;js_darkmode__text__150&quot;&gt;/plugin install dotnet@dotnet/skills&lt;/span&gt;&lt;br/&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img class=&quot;rich_pages wxw-img js_darkmode__45&quot; data-aistatus=&quot;1&quot; data-imgfileid=&quot;100037092&quot; data-ratio=&quot;0.5229826353421859&quot; data-src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/ttprHEnDlg74efI1Enhj53JcepI9qod91TGL74mWUpYoic4OAyIFXVBeMXVIPXflvLEdvpTnKGNP9l9uLXMOOSlX4WJc7K9gK3hiaFJCDjibso/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=4&quot; data-type=&quot;png&quot; data-w=&quot;979&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 657px !important;&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;3&quot; src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/ttprHEnDlg74efI1Enhj53JcepI9qod91TGL74mWUpYoic4OAyIFXVBeMXVIPXflvLEdvpTnKGNP9l9uLXMOOSlX4WJc7K9gK3hiaFJCDjibso/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=4&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776131142792&quot; data-report-img-idx=&quot;4&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;/p&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; class=&quot;js_darkmode__46 js_darkmode__text__151 list-paddingleft-2&quot; start=&quot;4&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__47 js_darkmode__text__153&quot;&gt;&lt;span class=&quot;js_darkmode__text__154&quot;&gt;重新启动 Claude Code 终端以载入新插件&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__48 js_darkmode__text__156&quot;&gt;&lt;span class=&quot;js_darkmode__text__157&quot;&gt;查看可用技能&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;border-radius: 5px;box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;text-align: left;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__49 js_darkmode__text__158&quot;&gt;&lt;code style=&quot;overflow-x: auto;padding: 16px;color: #abb2bf;padding-top: 15px;background: #282c34;border-radius: 5px;display: -webkit-box;font-family: Consolas, Monaco, Menlo, monospace;font-size: 12px;&quot; class=&quot;js_darkmode__50 js_darkmode__text__159&quot;&gt;&lt;span class=&quot;js_darkmode__text__160&quot;&gt;/skills&lt;/span&gt;&lt;br/&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;img class=&quot;rich_pages wxw-img js_darkmode__51&quot; data-aistatus=&quot;1&quot; data-imgfileid=&quot;100037089&quot; data-ratio=&quot;0.49414519906323184&quot; data-src=&quot;https://mmbiz.qpic.cn/mmbiz_png/ttprHEnDlg7sEL0rZSj7Va79azh0jQvRHV55qQIS1sQIO3ibUOgMDz30TZzXopciaKicaWvWnyc3hfO7evhnlXo5TueT0hjtU3Xeu1KmaqcYZE/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=5&quot; data-type=&quot;png&quot; data-w=&quot;854&quot; style=&quot;display: block; margin: 0px auto; max-width: 100%; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 657px !important;&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;4&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_png/ttprHEnDlg7sEL0rZSj7Va79azh0jQvRHV55qQIS1sQIO3ibUOgMDz30TZzXopciaKicaWvWnyc3hfO7evhnlXo5TueT0hjtU3Xeu1KmaqcYZE/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=5&quot; _width=&quot;520px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776131143093&quot; data-report-img-idx=&quot;5&quot; data-fail=&quot;0&quot;/&gt;&lt;/figure&gt;&lt;/p&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; class=&quot;js_darkmode__52 js_darkmode__text__161 list-paddingleft-2&quot; start=&quot;6&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__53 js_darkmode__text__163&quot;&gt;&lt;span class=&quot;js_darkmode__text__164&quot;&gt;接下来在你的 Claude Code 中验证安装 dotnet@dotnet/skills 插件后的 AI 输出效果吧&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgb(0, 0, 0);border-left-color: rgb(0, 0, 0);border-right-color: rgb(0, 0, 0);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: block;flex-direction: unset;float: unset;height: auto;justify-content: unset;line-height: 1.5em;overflow-x: unset;overflow-y: unset;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;text-align: left;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__54 js_darkmode__text__165&quot;&gt;&lt;span style=&quot;font-size: 20px;color: #009688;line-height: 1.8em;letter-spacing: 0em;padding-top: 0px;padding-bottom: 0px;padding-left: 10px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: solid;border-right-style: none;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 3px;border-right-width: 1px;border-top-color: #000000;border-bottom-color: #000000;border-left-color: #009688;border-right-color: #000000;border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;box-shadow: none;display: block;font-weight: bold;flex-direction: unset;float: unset;height: auto;justify-content: unset;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;overflow-x: unset;overflow-y: unset;text-align: left;text-indent: 0em;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__55 js_darkmode__text__166&quot;&gt;&lt;span class=&quot;js_darkmode__text__167&quot;&gt;项目源码地址&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;color: rgb(0, 0, 0);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__56 js_darkmode__text__168&quot;&gt;&lt;span class=&quot;js_darkmode__text__169&quot;&gt;更多项目实用功能和特性欢迎前往项目开源地址查看👀，别忘了给项目一个Star支持💖。&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot;js_darkmode__57 js_darkmode__text__170 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__58 js_darkmode__text__172&quot;&gt;&lt;strong style=&quot;color: rgb(0, 150, 136);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__59 js_darkmode__text__173&quot;&gt;&lt;span class=&quot;js_darkmode__text__174&quot;&gt;GitHub开源地址：&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__175&quot;&gt;https://github.com/dotnet/skills&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 30px;margin-bottom: 15px;margin-left: 0px;margin-right: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-right-width: 1px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgb(0, 0, 0);border-left-color: rgb(0, 0, 0);border-right-color: rgb(0, 0, 0);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;box-shadow: none;display: block;flex-direction: unset;float: unset;height: auto;justify-content: unset;line-height: 1.5em;overflow-x: unset;overflow-y: unset;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;text-align: left;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__60 js_darkmode__text__176&quot;&gt;&lt;span style=&quot;font-size: 20px;color: #009688;line-height: 1.8em;letter-spacing: 0em;padding-top: 0px;padding-bottom: 0px;padding-left: 10px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: solid;border-right-style: none;border-top-width: 1px;border-bottom-width: 1px;border-left-width: 3px;border-right-width: 1px;border-top-color: #000000;border-bottom-color: #000000;border-left-color: #009688;border-right-color: #000000;border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;align-items: unset;background-attachment: scroll;background-clip: border-box;background-color: unset;background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;box-shadow: none;display: block;font-weight: bold;flex-direction: unset;float: unset;height: auto;justify-content: unset;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;overflow-x: unset;overflow-y: unset;text-align: left;text-indent: 0em;text-shadow: none;transform: none;width: auto;-webkit-box-reflect: unset;&quot; class=&quot;js_darkmode__61 js_darkmode__text__177&quot;&gt;&lt;span class=&quot;js_darkmode__text__178&quot;&gt;优秀项目和框架精选&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;color: rgb(0, 0, 0);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&quot; class=&quot;js_darkmode__62 js_darkmode__text__179&quot;&gt;&lt;span class=&quot;js_darkmode__text__180&quot;&gt;该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中，关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践，提高开发工作效率和质量。坑已挖，欢迎大家踊跃提交PR推荐或自荐（&lt;/span&gt;&lt;strong style=&quot;color: rgb(0, 150, 136);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__63 js_darkmode__text__181&quot;&gt;&lt;span class=&quot;js_darkmode__text__182&quot;&gt;让优秀的项目和框架不被埋没🤞&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__183&quot;&gt;）。&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot;js_darkmode__64 js_darkmode__text__184 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;&quot; class=&quot;js_darkmode__65 js_darkmode__text__186&quot;&gt;&lt;strong style=&quot;color: rgb(0, 150, 136);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__66 js_darkmode__text__187&quot;&gt;&lt;span class=&quot;js_darkmode__text__188&quot;&gt;GitHub开源地址：&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__189&quot;&gt;https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong style=&quot;color: rgb(0, 150, 136);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;&quot; class=&quot;js_darkmode__68 js_darkmode__text__192&quot;&gt;&lt;span class=&quot;js_darkmode__text__193&quot;&gt;Gitee开源地址：&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;js_darkmode__text__194&quot;&gt;https://gitee.com/ysgdaydayup/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Tue, 14 Apr 2026 09:46:08 +0800</pubDate></item><item><title>别再手写WinForm界面！4个顶级开源UI控件库，让你少走80%弯路</title><link>https://www.codepub.top/post/253.html</link><description>&lt;section data-layout-id=&quot;0&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__0 js_darkmode__text__0&quot;&gt;&lt;span class=&quot;js_darkmode__text__1&quot;&gt;做C&lt;a class=&quot;wx_topic_link js_darkmode__text__2&quot; style=&quot;color: #576B95 !important;&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot;&gt;#WinForm开发的同学&lt;/a&gt;，大概率都踩过这样的坑：&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;section data-layout-id=&quot;1&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__1 js_darkmode__text__3&quot;&gt;&lt;span class=&quot;js_darkmode__text__4&quot;&gt;原生控件灰底白字、棱角分明，写个好看的界面要手动调样式、写重绘，动辄几百行代码；做工业上位机、管理系统时，表格、树形控件、仪表盘还要自己封装，不仅耗时，还容易出现卡顿、适配异常；好不容易写好的界面，换个电脑就出现DPI缩放错乱，调试起来头大如斗。&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;2&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__2 js_darkmode__text__5&quot;&gt;&lt;span class=&quot;js_darkmode__text__6&quot;&gt;其实根本不用这么卷！WinForm早已不是“复古”的代名词，市面上有很多优秀的开源UI控件库，能直接帮你跳过手写界面的痛苦，一键实现现代化、高适配、高性能的界面效果，新手也能快速上手。&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;3&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__3 js_darkmode__text__7&quot;&gt;&lt;span class=&quot;js_darkmode__text__8&quot;&gt;今天就给大家整理了4个顶级开源WinForm UI控件库，每一个都经过工业级项目验证，附带具体使用场景、核心知识点和实操步骤，帮你少走80%的弯路，专注核心业务逻辑开发！&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;4&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__4 js_darkmode__text__9&quot;&gt;&lt;span class=&quot;js_darkmode__text__10&quot;&gt;&lt;span style=&quot;font-size: 17px;font-weight: bold;&quot; class=&quot;js_darkmode__text__11&quot;&gt;（文末附所有控件库源码+快速上手Demo+避坑手册，直接领取就能用）&lt;/span&gt;&lt;/span&gt;&lt;/section&gt;&lt;/p&gt;&lt;h1 style=&quot;text-align: center;font-size: 20px;font-weight: 500;color: rgba(43, 119, 191, 1);line-height: 1.8;margin-bottom: 12px;&quot; data-layout-id=&quot;5&quot; class=&quot;js_darkmode__text__12&quot;&gt;&lt;span class=&quot;js_darkmode__text__13&quot;&gt;一、&lt;span class=&quot;&quot;&gt;MaterialSkin&lt;/span&gt;：最简洁的Material Design风格，新手首选&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;section data-layout-id=&quot;6&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__5 js_darkmode__text__14&quot;&gt;&lt;span class=&quot;js_darkmode__text__15&quot;&gt;如果你想快速把传统WinForm界面，改成符合谷歌Material Design规范的现代化样式，&lt;span style=&quot;font-weight: bold;&quot; class=&quot;js_darkmode__text__16&quot;&gt;MaterialSkin&lt;/span&gt;绝对是首选——轻量、开源、零门槛，无需复杂配置，新手也能10分钟搞定美化。&lt;/span&gt;&lt;/section&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;font-size: 17px;font-weight: 500;color: rgba(43, 119, 191, 1);line-height: 1.8;margin-bottom: 12px;&quot; data-layout-id=&quot;7&quot; class=&quot;js_darkmode__text__17&quot;&gt;&lt;span class=&quot;js_darkmode__text__18&quot;&gt;核心技术知识点&lt;/span&gt;&lt;/h2&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; class=&quot;js_darkmode__6 js_darkmode__text__19 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);margin-bottom: 24px;line-height: 1.8;&quot; class=&quot;js_darkmode__7 js_darkmode__text__21&quot;&gt;&lt;span class=&quot;js_darkmode__text__22&quot;&gt;设计规范：严格遵循Material Design 3标准，包含字体层级、颜色体系、阴影深度、水波纹反馈等核心要素，让WinForm界面拥有和Android应用一致的视觉体验；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);margin-bottom: 24px;line-height: 1.8;&quot; class=&quot;js_darkmode__8 js_darkmode__text__24&quot;&gt;&lt;span class=&quot;js_darkmode__text__25&quot;&gt;渲染机制：基于GDI+重绘控件，支持双缓冲优化，避免界面闪烁，同时实现了Container Transform与Shared Axis转场动画，提升交互连贯性；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);margin-bottom: 24px;line-height: 1.8;&quot; class=&quot;js_darkmode__9 js_darkmode__text__27&quot;&gt;&lt;span class=&quot;js_darkmode__text__28&quot;&gt;核心优势：完全开源（MIT协议）、体积小（仅几MB）、兼容性强，支持.NET Framework 4.0+及.NET 6/8，无需额外依赖，NuGet一键安装。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 style=&quot;text-align: left;font-size: 17px;font-weight: 500;color: rgba(43, 119, 191, 1);line-height: 1.8;margin-bottom: 12px;&quot; data-layout-id=&quot;11&quot; class=&quot;js_darkmode__text__29&quot;&gt;&lt;span class=&quot;js_darkmode__text__30&quot;&gt;关键实操步骤（极简版）&lt;/span&gt;&lt;/h2&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; class=&quot;js_darkmode__10 js_darkmode__text__31 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);margin-bottom: 24px;line-height: 1.8;&quot; class=&quot;js_darkmode__11 js_darkmode__text__33&quot;&gt;&lt;span class=&quot;js_darkmode__text__34&quot;&gt;NuGet安装：搜索“MaterialSkin.2”，安装最新稳定版本；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);margin-bottom: 24px;line-height: 1.8;&quot; class=&quot;js_darkmode__12 js_darkmode__text__36&quot;&gt;&lt;span class=&quot;js_darkmode__text__37&quot;&gt;初始化配置：在窗体构造函数中初始化MaterialSkin管理器，设置主题和配色（支持明暗切换）：&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;section style=&quot;text-align: center;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; data-layout-id=&quot;14&quot; class=&quot;js_darkmode__13&quot;&gt;&lt;section style=&quot;text-align: center;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__14&quot;&gt;&lt;img data-src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/7QznINwpYnvcFWbFTicRibAdzJVoqYdtFJ1rUYyDDsR71yicKcRw2TUczqqzk8Nx0jxnWicWfCcLbBqOy2Rs2AFf3LVyzu7viacu6QF4vVtaibm90/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=0&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.9831730769230769&quot; data-s=&quot;300,640&quot; data-type=&quot;png&quot; data-w=&quot;416&quot; type=&quot;block&quot; data-imgfileid=&quot;100001882&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;null&quot; data-index=&quot;0&quot; src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/7QznINwpYnvcFWbFTicRibAdzJVoqYdtFJ1rUYyDDsR71yicKcRw2TUczqqzk8Nx0jxnWicWfCcLbBqOy2Rs2AFf3LVyzu7viacu6QF4vVtaibm90/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=0&quot; _width=&quot;416px&quot; __sec_open_place_holder__=&quot;true&quot; style=&quot;height: auto !important; visibility: visible !important; width: 416px !important;&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776050573220&quot; data-report-img-idx=&quot;0&quot; data-fail=&quot;0&quot;/&gt;&lt;/section&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;15&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__15 js_darkmode__text__38&quot;&gt;&lt;span class=&quot;js_darkmode__text__39&quot;&gt;3. &amp;nbsp;控件使用：将窗体继承自MaterialForm，从工具箱拖拽MaterialTextBox、MaterialButton等控件，直接使用无需额外配置。&lt;/span&gt;&lt;/section&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;font-size: 17px;font-weight: 500;color: rgba(43, 119, 191, 1);line-height: 1.8;margin-bottom: 12px;&quot; data-layout-id=&quot;16&quot; class=&quot;js_darkmode__text__40&quot;&gt;&lt;span class=&quot;js_darkmode__text__41&quot;&gt;适用场景&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;section data-layout-id=&quot;17&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__16 js_darkmode__text__42&quot;&gt;&lt;span class=&quot;js_darkmode__text__43&quot;&gt;个人项目、小型管理工具、简易上位机界面，追求简洁美观、快速开发，不需要复杂的高级控件（如复杂报表、大屏仪表盘）。&lt;/span&gt;&lt;/section&gt;&lt;/p&gt;&lt;h1 style=&quot;text-align: center;font-size: 20px;font-weight: 500;color: rgba(43, 119, 191, 1);line-height: 1.8;margin-bottom: 12px;&quot; data-layout-id=&quot;18&quot; class=&quot;js_darkmode__text__44&quot;&gt;&lt;span class=&quot;js_darkmode__text__45&quot;&gt;二、&lt;span class=&quot;&quot;&gt;ReaLTaiizor&lt;/span&gt;：企业级主题王者，高定制化首选&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;section data-layout-id=&quot;19&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__17 js_darkmode__text__46&quot;&gt;&lt;span class=&quot;js_darkmode__text__47&quot;&gt;如果你的项目是工业级系统、大型管理平台，对界面美观度和定制化要求高，&lt;span style=&quot;font-weight: bold;&quot; class=&quot;js_darkmode__text__48&quot;&gt;ReaLTaiizor&lt;/span&gt;一定要试试——它被誉为“WinForm颜值天花板”，内置上百种主题，支持高度自定义，性能拉满。&lt;/span&gt;&lt;/section&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;font-size: 17px;font-weight: 500;color: rgba(43, 119, 191, 1);line-height: 1.8;margin-bottom: 12px;&quot; data-layout-id=&quot;20&quot; class=&quot;js_darkmode__text__49&quot;&gt;&lt;span class=&quot;js_darkmode__text__50&quot;&gt;核心技术知识点&lt;/span&gt;&lt;/h2&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; class=&quot;js_darkmode__18 js_darkmode__text__51 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);margin-bottom: 24px;line-height: 1.8;&quot; class=&quot;js_darkmode__19 js_darkmode__text__53&quot;&gt;&lt;span class=&quot;js_darkmode__text__54&quot;&gt;主题架构：采用“主题即服务”（Theme-as-a-Service）设计，支持运行时热加载JSON格式主题包，包含127项可配置参数（颜色、字体、圆角、阴影等）；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);margin-bottom: 24px;line-height: 1.8;&quot; class=&quot;js_darkmode__20 js_darkmode__text__56&quot;&gt;&lt;span class=&quot;js_darkmode__text__57&quot;&gt;渲染优化：控件继承自原生Control基类，重写OnPaintCore方法，采用Direct2D后端加速渲染，4K高分屏下帧率稳定60FPS以上，无卡顿；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);margin-bottom: 24px;line-height: 1.8;&quot; class=&quot;js_darkmode__21 js_darkmode__text__59&quot;&gt;&lt;span class=&quot;js_darkmode__text__60&quot;&gt;特色功能：支持上下文感知主题（根据系统暗色模式、业务状态自动切换），内置ThemeBuilder可视化工具，可快速生成自定义主题，无需手写样式代码。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 style=&quot;text-align: left;font-size: 17px;font-weight: 500;color: rgba(43, 119, 191, 1);line-height: 1.8;margin-bottom: 12px;&quot; data-layout-id=&quot;24&quot; class=&quot;js_darkmode__text__61&quot;&gt;&lt;span class=&quot;js_darkmode__text__62&quot;&gt;关键实操步骤&lt;/span&gt;&lt;/h2&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; class=&quot;js_darkmode__22 js_darkmode__text__63 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);margin-bottom: 24px;line-height: 1.8;&quot; class=&quot;js_darkmode__23 js_darkmode__text__65&quot;&gt;&lt;span class=&quot;js_darkmode__text__66&quot;&gt;NuGet安装：搜索“ReaLTaiizor”，安装完成后重启Visual Studio；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);margin-bottom: 24px;line-height: 1.8;&quot; class=&quot;js_darkmode__24 js_darkmode__text__68&quot;&gt;&lt;span class=&quot;js_darkmode__text__69&quot;&gt;主题切换：通过简单代码实现主题动态切换，适配不同场景需求：&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;section style=&quot;text-align: center;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; data-layout-id=&quot;27&quot; class=&quot;js_darkmode__25&quot;&gt;&lt;section style=&quot;text-align: center;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__26&quot;&gt;&lt;img data-src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/7QznINwpYnuzTzvticYhRt4YSztNU6ecVf0UQMJ7yRtd2EWvDBGqBkAdVI1cYibQR5Cpy6Vujn2g3q99ly2P3agBbK4mh0AMWYxeXMt2vSZrI/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=1&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.5875576036866359&quot; data-s=&quot;300,640&quot; data-type=&quot;png&quot; data-w=&quot;434&quot; type=&quot;block&quot; data-imgfileid=&quot;100001883&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;null&quot; data-index=&quot;1&quot; src=&quot;https://mmbiz.qpic.cn/sz_mmbiz_png/7QznINwpYnuzTzvticYhRt4YSztNU6ecVf0UQMJ7yRtd2EWvDBGqBkAdVI1cYibQR5Cpy6Vujn2g3q99ly2P3agBbK4mh0AMWYxeXMt2vSZrI/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=1&quot; _width=&quot;434px&quot; __sec_open_place_holder__=&quot;true&quot; style=&quot;height: auto !important; visibility: visible !important; width: 434px !important;&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776050598127&quot; data-report-img-idx=&quot;1&quot; data-fail=&quot;0&quot;/&gt;&lt;/section&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;28&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__27 js_darkmode__text__70&quot;&gt;&lt;span class=&quot;js_darkmode__text__71&quot;&gt;3. &amp;nbsp;高级用法：使用内置的Dashboard、DataGridView等增强控件，支持数据虚拟化、条件格式、&lt;span class=&quot;&quot;&gt;单元格合并&lt;/span&gt;，直接替代原生控件，提升开发效率。&lt;/span&gt;&lt;/section&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;font-size: 17px;font-weight: 500;color: rgba(43, 119, 191, 1);line-height: 1.8;margin-bottom: 12px;&quot; data-layout-id=&quot;29&quot; class=&quot;js_darkmode__text__72&quot;&gt;&lt;span class=&quot;js_darkmode__text__73&quot;&gt;适用场景&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;section data-layout-id=&quot;30&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__28 js_darkmode__text__74&quot;&gt;&lt;span class=&quot;js_darkmode__text__75&quot;&gt;工业上位机、ERP/&lt;span class=&quot;&quot;&gt;MES系统&lt;/span&gt;、大型管理平台、需要高度定制化界面的企业级项目，尤其适合需要适配高分屏、多主题切换的场景。&lt;/span&gt;&lt;/section&gt;&lt;/p&gt;&lt;h1 style=&quot;text-align: center;font-size: 20px;font-weight: 500;color: rgba(43, 119, 191, 1);line-height: 1.8;margin-bottom: 12px;&quot; data-layout-id=&quot;31&quot; class=&quot;js_darkmode__text__76&quot;&gt;&lt;span class=&quot;js_darkmode__text__77&quot;&gt;三、SunnyUI：开箱即用的全能框架，兼顾效率与功能&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;section data-layout-id=&quot;32&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__29 js_darkmode__text__78&quot;&gt;&lt;span class=&quot;js_darkmode__text__79&quot;&gt;很多开发者吐槽“控件库只给控件，没有配套工具”，而&lt;span style=&quot;font-weight: bold;&quot; class=&quot;js_darkmode__text__80&quot;&gt;SunnyUI&lt;/span&gt;完美解决了这个问题——它不只是一个控件库，更是一套完整的WinForm开发框架，内置多页面管理、多语言支持、工具类集合，开箱即用。&lt;/span&gt;&lt;/section&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;font-size: 17px;font-weight: 500;color: rgba(43, 119, 191, 1);line-height: 1.8;margin-bottom: 12px;&quot; data-layout-id=&quot;33&quot; class=&quot;js_darkmode__text__81&quot;&gt;&lt;span class=&quot;js_darkmode__text__82&quot;&gt;核心技术知识点&lt;/span&gt;&lt;/h2&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; class=&quot;js_darkmode__30 js_darkmode__text__83 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);margin-bottom: 24px;line-height: 1.8;&quot; class=&quot;js_darkmode__31 js_darkmode__text__85&quot;&gt;&lt;span class=&quot;js_darkmode__text__86&quot;&gt;跨框架兼容：抽象出IUIRenderer接口，同一套UI代码可无缝编译为WinForm、WPF、.NET MAUI三个目标平台，适合企业遗留系统渐进式迁移；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);margin-bottom: 24px;line-height: 1.8;&quot; class=&quot;js_darkmode__32 js_darkmode__text__88&quot;&gt;&lt;span class=&quot;js_darkmode__text__89&quot;&gt;组件完整性：包含100+常用控件（表格、树形图、日历、进度条、对话框等），参考Element UI设计语言，界面清爽，无需额外封装；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);margin-bottom: 24px;line-height: 1.8;&quot; class=&quot;js_darkmode__33 js_darkmode__text__91&quot;&gt;&lt;span class=&quot;js_darkmode__text__92&quot;&gt;开发效率：内置多语言切换、主题配置、数据校验等工具类，常用文字（提示、按钮文本）统一管理，减少重复代码，支持拖拽式开发。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 style=&quot;text-align: left;font-size: 17px;font-weight: 500;color: rgba(43, 119, 191, 1);line-height: 1.8;margin-bottom: 12px;&quot; data-layout-id=&quot;37&quot; class=&quot;js_darkmode__text__93&quot;&gt;&lt;span class=&quot;js_darkmode__text__94&quot;&gt;关键实操步骤&lt;/span&gt;&lt;/h2&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; class=&quot;js_darkmode__34 js_darkmode__text__95 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);margin-bottom: 24px;line-height: 1.8;&quot; class=&quot;js_darkmode__35 js_darkmode__text__97&quot;&gt;&lt;span class=&quot;js_darkmode__text__98&quot;&gt;NuGet安装：搜索“SunnyUI”，安装后在工具箱中会自动出现SunnyUI控件组；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);margin-bottom: 24px;line-height: 1.8;&quot; class=&quot;js_darkmode__36 js_darkmode__text__100&quot;&gt;&lt;span class=&quot;js_darkmode__text__101&quot;&gt;多语言配置：通过ULocalize类统一管理界面文字，支持动态切换语言：&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;section style=&quot;text-align: center;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; data-layout-id=&quot;40&quot; class=&quot;js_darkmode__37&quot;&gt;&lt;section style=&quot;text-align: center;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__38&quot;&gt;&lt;img data-src=&quot;https://mmbiz.qpic.cn/mmbiz_png/7QznINwpYnuQs20ZuTYqgWfuG6RcopRdAsTX0SsxcP5bcdt1JCDhsrhia7YtGegdicq6hrxjia87IB8wOtSp3mERKrLMnCnhicyjTKycIRwgxLI/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=2&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.4513064133016627&quot; data-s=&quot;300,640&quot; data-type=&quot;png&quot; data-w=&quot;421&quot; type=&quot;block&quot; data-imgfileid=&quot;100001884&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;null&quot; data-index=&quot;2&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_png/7QznINwpYnuQs20ZuTYqgWfuG6RcopRdAsTX0SsxcP5bcdt1JCDhsrhia7YtGegdicq6hrxjia87IB8wOtSp3mERKrLMnCnhicyjTKycIRwgxLI/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=2&quot; _width=&quot;421px&quot; __sec_open_place_holder__=&quot;true&quot; style=&quot;height: auto !important; visibility: visible !important; width: 421px !important;&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776050601586&quot; data-report-img-idx=&quot;2&quot; data-fail=&quot;0&quot;/&gt;&lt;/section&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;41&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__39 js_darkmode__text__102&quot;&gt;&lt;span class=&quot;js_darkmode__text__103&quot;&gt;3. &amp;nbsp;快速布局：使用SunnyUI的LayoutControl控件，一键实现控件自适应布局，解决DPI缩放错乱问题，无需手动计算控件位置。&lt;/span&gt;&lt;/section&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;font-size: 17px;font-weight: 500;color: rgba(43, 119, 191, 1);line-height: 1.8;margin-bottom: 12px;&quot; data-layout-id=&quot;42&quot; class=&quot;js_darkmode__text__104&quot;&gt;&lt;span class=&quot;js_darkmode__text__105&quot;&gt;适用场景&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;section data-layout-id=&quot;43&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__40 js_darkmode__text__106&quot;&gt;&lt;span class=&quot;js_darkmode__text__107&quot;&gt;中大型管理系统、多语言需求项目、需要快速交付的企业项目，尤其适合不想重复封装工具类、追求“一站式开发”的开发者。&lt;/span&gt;&lt;/section&gt;&lt;/p&gt;&lt;h1 style=&quot;text-align: center;font-size: 20px;font-weight: 500;color: rgba(43, 119, 191, 1);line-height: 1.8;margin-bottom: 12px;&quot; data-layout-id=&quot;44&quot; class=&quot;js_darkmode__text__108&quot;&gt;&lt;span class=&quot;js_darkmode__text__109&quot;&gt;四、&lt;span class=&quot;&quot;&gt;AntdUI&lt;/span&gt;：Ant Design风格，工业级轻量之选&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;section data-layout-id=&quot;45&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__41 js_darkmode__text__110&quot;&gt;&lt;span class=&quot;js_darkmode__text__111&quot;&gt;如果你熟悉Web端的Ant Design，那么&lt;span style=&quot;font-weight: bold;&quot; class=&quot;js_darkmode__text__112&quot;&gt;AntdUI&lt;/span&gt;会让你倍感亲切——它将Ant Design的设计哲学完美移植到WinForm，纯GDI绘图，轻量高效，尤其适合工业控制、嵌入式场景。&lt;/span&gt;&lt;/section&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;font-size: 17px;font-weight: 500;color: rgba(43, 119, 191, 1);line-height: 1.8;margin-bottom: 12px;&quot; data-layout-id=&quot;46&quot; class=&quot;js_darkmode__text__113&quot;&gt;&lt;span class=&quot;js_darkmode__text__114&quot;&gt;核心技术知识点&lt;/span&gt;&lt;/h2&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; class=&quot;js_darkmode__42 js_darkmode__text__115 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);margin-bottom: 24px;line-height: 1.8;&quot; class=&quot;js_darkmode__43 js_darkmode__text__117&quot;&gt;&lt;span class=&quot;js_darkmode__text__118&quot;&gt;设计风格：延续Ant Design的极简风格，支持响应式断点布局，通过Anchor与Dock组合策略，实现界面自适应不同窗口大小；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);margin-bottom: 24px;line-height: 1.8;&quot; class=&quot;js_darkmode__44 js_darkmode__text__120&quot;&gt;&lt;span class=&quot;js_darkmode__text__121&quot;&gt;性能优势：纯GDI绘图，无需外部图片资源，体积轻量，全面支持AOT提前编译，提升部署安全性和启动速度，适合嵌入式、工业场景；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);margin-bottom: 24px;line-height: 1.8;&quot; class=&quot;js_darkmode__45 js_darkmode__text__123&quot;&gt;&lt;span class=&quot;js_darkmode__text__124&quot;&gt;可访问性：支持WCAG 2.1 AA标准的键盘导航与屏幕阅读器语义标注，通过IL织入技术实现Aero Glass透明效果，提升界面纵深感。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 style=&quot;text-align: left;font-size: 17px;font-weight: 500;color: rgba(43, 119, 191, 1);line-height: 1.8;margin-bottom: 12px;&quot; data-layout-id=&quot;50&quot; class=&quot;js_darkmode__text__125&quot;&gt;&lt;span class=&quot;js_darkmode__text__126&quot;&gt;关键实操步骤&lt;/span&gt;&lt;/h2&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; class=&quot;js_darkmode__46 js_darkmode__text__127 list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);margin-bottom: 24px;line-height: 1.8;&quot; class=&quot;js_darkmode__47 js_darkmode__text__129&quot;&gt;&lt;span class=&quot;js_darkmode__text__130&quot;&gt;NuGet安装：搜索“AntdUI.WinForm”，安装完成后引用AntdUI命名空间；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);margin-bottom: 24px;line-height: 1.8;&quot; class=&quot;js_darkmode__48 js_darkmode__text__132&quot;&gt;&lt;span class=&quot;js_darkmode__text__133&quot;&gt;基础控件使用：拖拽AntdButton、AntdTable等控件，通过属性面板设置样式，无需手写重绘代码：&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;section style=&quot;text-align: center;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; data-layout-id=&quot;53&quot; class=&quot;js_darkmode__49&quot;&gt;&lt;section style=&quot;text-align: center;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__50&quot;&gt;&lt;img data-src=&quot;https://mmbiz.qpic.cn/mmbiz_png/7QznINwpYnsTvJsrDTOh3zgzDEjQE35Rkfl4rsNUCUf7xzWIZBzib8f48eicvQQunRyOyUCJvYAyBQh9t6NDrkNNeqfwDA7sj4TJF8ibf1fLJo/640?wx_fmt=png&amp;amp;from=appmsg#imgIndex=3&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.7723970944309927&quot; data-s=&quot;300,640&quot; data-type=&quot;png&quot; data-w=&quot;413&quot; type=&quot;block&quot; data-imgfileid=&quot;100001885&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;null&quot; data-index=&quot;3&quot; src=&quot;https://mmbiz.qpic.cn/mmbiz_png/7QznINwpYnsTvJsrDTOh3zgzDEjQE35Rkfl4rsNUCUf7xzWIZBzib8f48eicvQQunRyOyUCJvYAyBQh9t6NDrkNNeqfwDA7sj4TJF8ibf1fLJo/640?wx_fmt=png&amp;from=appmsg&amp;tp=wxpic&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=3&quot; _width=&quot;413px&quot; __sec_open_place_holder__=&quot;true&quot; style=&quot;height: auto !important; visibility: visible !important; width: 413px !important;&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1776050605258&quot; data-report-img-idx=&quot;3&quot; data-fail=&quot;0&quot;/&gt;&lt;/section&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;54&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__51 js_darkmode__text__134&quot;&gt;&lt;span class=&quot;js_darkmode__text__135&quot;&gt;3. &amp;nbsp;特色功能：支持Acrylic半透明效果、SVG图标嵌入，控件交互流畅，适合开发工业控制软件、嵌入式设备界面。&lt;/span&gt;&lt;/section&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;font-size: 17px;font-weight: 500;color: rgba(43, 119, 191, 1);line-height: 1.8;margin-bottom: 12px;&quot; data-layout-id=&quot;55&quot; class=&quot;js_darkmode__text__136&quot;&gt;&lt;span class=&quot;js_darkmode__text__137&quot;&gt;适用场景&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;section data-layout-id=&quot;56&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__52 js_darkmode__text__138&quot;&gt;&lt;span class=&quot;js_darkmode__text__139&quot;&gt;工业控制软件、嵌入式设备界面、对性能和体积敏感的项目，以及熟悉Ant Design风格、追求跨端设计一致性的开发者。&lt;/span&gt;&lt;/section&gt;&lt;/p&gt;&lt;h1 style=&quot;text-align: center;font-size: 20px;font-weight: 500;color: rgba(43, 119, 191, 1);line-height: 1.8;margin-bottom: 12px;&quot; data-layout-id=&quot;57&quot; class=&quot;js_darkmode__text__140&quot;&gt;&lt;span class=&quot;js_darkmode__text__141&quot;&gt;重点总结：4个控件库怎么选？（避坑指南）&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;section data-layout-id=&quot;58&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__53 js_darkmode__text__142&quot;&gt;&lt;span class=&quot;js_darkmode__text__143&quot;&gt;很多开发者容易盲目选型，导致后期返工，这里给大家整理了清晰的选型建议，直接对号入座：&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;59&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__54 js_darkmode__text__144&quot;&gt;&lt;span class=&quot;js_darkmode__text__145&quot;&gt;•新手/小型项目：选&lt;span style=&quot;font-weight: bold;&quot; class=&quot;js_darkmode__text__146&quot;&gt;MaterialSkin&lt;/span&gt;，零门槛、轻量、快速美化，不用复杂配置；&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;60&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__55 js_darkmode__text__147&quot;&gt;&lt;span data-pm-slice=&quot;1 1 [&amp;quot;para&amp;quot;,{&amp;quot;tagName&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;attributes&amp;quot;:{&amp;quot;data-layout-id&amp;quot;:&amp;quot;59&amp;quot;,&amp;quot;style&amp;quot;:&amp;quot;font-size: 17px; font-weight: 400; color: rgba(0,0,0,0.9); line-height: 1.8; margin-bottom: 24px&amp;quot;},&amp;quot;namespaceURI&amp;quot;:&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;}]&quot; class=&quot;js_darkmode__text__148&quot;&gt;•&lt;/span&gt;&lt;span class=&quot;js_darkmode__text__149&quot;&gt;企业级高定制项目：选&lt;span style=&quot;font-weight: bold;&quot; class=&quot;js_darkmode__text__150&quot;&gt;ReaLTaiizor&lt;/span&gt;，主题丰富、性能强，支持高分屏和自定义主题；&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;61&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__56 js_darkmode__text__151&quot;&gt;&lt;span data-pm-slice=&quot;1 1 [&amp;quot;para&amp;quot;,{&amp;quot;tagName&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;attributes&amp;quot;:{&amp;quot;data-layout-id&amp;quot;:&amp;quot;59&amp;quot;,&amp;quot;style&amp;quot;:&amp;quot;font-size: 17px; font-weight: 400; color: rgba(0,0,0,0.9); line-height: 1.8; margin-bottom: 24px&amp;quot;},&amp;quot;namespaceURI&amp;quot;:&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;}]&quot; class=&quot;js_darkmode__text__152&quot;&gt;•&lt;/span&gt;&lt;span class=&quot;js_darkmode__text__153&quot;&gt;中大型管理系统：选&lt;span style=&quot;font-weight: bold;&quot; class=&quot;js_darkmode__text__154&quot;&gt;SunnyUI&lt;/span&gt;，全能框架，多语言、布局工具齐全，开箱即用；&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;62&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__57 js_darkmode__text__155&quot;&gt;&lt;span data-pm-slice=&quot;1 1 [&amp;quot;para&amp;quot;,{&amp;quot;tagName&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;attributes&amp;quot;:{&amp;quot;data-layout-id&amp;quot;:&amp;quot;59&amp;quot;,&amp;quot;style&amp;quot;:&amp;quot;font-size: 17px; font-weight: 400; color: rgba(0,0,0,0.9); line-height: 1.8; margin-bottom: 24px&amp;quot;},&amp;quot;namespaceURI&amp;quot;:&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;}]&quot; class=&quot;js_darkmode__text__156&quot;&gt;•&lt;/span&gt;&lt;span class=&quot;js_darkmode__text__157&quot;&gt;工业/嵌入式场景：选&lt;span style=&quot;font-weight: bold;&quot; class=&quot;js_darkmode__text__158&quot;&gt;AntdUI&lt;/span&gt;，轻量高效、支持AOT编译，适配嵌入式设备。&lt;/span&gt;&lt;/section&gt;&lt;/p&gt;&lt;h1 style=&quot;text-align: center;font-size: 20px;font-weight: 500;color: rgba(43, 119, 191, 1);line-height: 1.8;margin-bottom: 12px;&quot; data-layout-id=&quot;63&quot; class=&quot;js_darkmode__text__159&quot;&gt;&lt;span class=&quot;js_darkmode__text__160&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot; class=&quot;js_darkmode__text__161&quot;&gt;最后：福利领取（直接上手，不用踩坑）&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;section data-layout-id=&quot;64&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__58 js_darkmode__text__162&quot;&gt;&lt;span class=&quot;js_darkmode__text__163&quot;&gt;为了帮大家节省时间，我已经整理好了所有控件库的核心资源，直接领取就能快速上手：&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;65&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__59 js_darkmode__text__164&quot;&gt;&lt;span data-pm-slice=&quot;1 1 [&amp;quot;para&amp;quot;,{&amp;quot;tagName&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;attributes&amp;quot;:{&amp;quot;data-layout-id&amp;quot;:&amp;quot;59&amp;quot;,&amp;quot;style&amp;quot;:&amp;quot;font-size: 17px; font-weight: 400; color: rgba(0,0,0,0.9); line-height: 1.8; margin-bottom: 24px&amp;quot;},&amp;quot;namespaceURI&amp;quot;:&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;}]&quot; class=&quot;js_darkmode__text__165&quot;&gt;•&lt;/span&gt;&lt;span class=&quot;js_darkmode__text__166&quot;&gt;4个控件库的&lt;span style=&quot;font-weight: bold;&quot; class=&quot;js_darkmode__text__167&quot;&gt;源码地址+NuGet安装指南&lt;/span&gt;；&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;66&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__60 js_darkmode__text__168&quot;&gt;&lt;span data-pm-slice=&quot;1 1 [&amp;quot;para&amp;quot;,{&amp;quot;tagName&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;attributes&amp;quot;:{&amp;quot;data-layout-id&amp;quot;:&amp;quot;59&amp;quot;,&amp;quot;style&amp;quot;:&amp;quot;font-size: 17px; font-weight: 400; color: rgba(0,0,0,0.9); line-height: 1.8; margin-bottom: 24px&amp;quot;},&amp;quot;namespaceURI&amp;quot;:&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;}]&quot; class=&quot;js_darkmode__text__169&quot;&gt;•&lt;/span&gt;&lt;span class=&quot;js_darkmode__text__170&quot;&gt;每个控件库的&lt;span style=&quot;font-weight: bold;&quot; class=&quot;js_darkmode__text__171&quot;&gt;快速上手Demo&lt;/span&gt;（含完整代码，可直接运行）；&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;67&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__61 js_darkmode__text__172&quot;&gt;&lt;span data-pm-slice=&quot;1 1 [&amp;quot;para&amp;quot;,{&amp;quot;tagName&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;attributes&amp;quot;:{&amp;quot;data-layout-id&amp;quot;:&amp;quot;59&amp;quot;,&amp;quot;style&amp;quot;:&amp;quot;font-size: 17px; font-weight: 400; color: rgba(0,0,0,0.9); line-height: 1.8; margin-bottom: 24px&amp;quot;},&amp;quot;namespaceURI&amp;quot;:&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;}]&quot; class=&quot;js_darkmode__text__173&quot;&gt;•&lt;/span&gt;&lt;span class=&quot;js_darkmode__text__174&quot;&gt;WinForm UI开发&lt;span style=&quot;font-weight: bold;&quot; class=&quot;js_darkmode__text__175&quot;&gt;避坑手册&lt;/span&gt;（解决DPI缩放、主题切换、控件卡顿等常见问题）；&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;68&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__62 js_darkmode__text__176&quot;&gt;&lt;span data-pm-slice=&quot;1 1 [&amp;quot;para&amp;quot;,{&amp;quot;tagName&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;attributes&amp;quot;:{&amp;quot;data-layout-id&amp;quot;:&amp;quot;59&amp;quot;,&amp;quot;style&amp;quot;:&amp;quot;font-size: 17px; font-weight: 400; color: rgba(0,0,0,0.9); line-height: 1.8; margin-bottom: 24px&amp;quot;},&amp;quot;namespaceURI&amp;quot;:&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;}]&quot; class=&quot;js_darkmode__text__177&quot;&gt;•&lt;/span&gt;&lt;span class=&quot;js_darkmode__text__178&quot;&gt;额外赠送：WinForm高颜值HMI界面实战源码（适配工业上位机场景）。&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;69&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__63 js_darkmode__text__179&quot;&gt;&lt;span class=&quot;js_darkmode__text__180&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot; class=&quot;js_darkmode__text__181&quot;&gt;领取方式：关注公众号【.NET快速高薪】，回复关键词「WinForm UI」，即可免费领取所有资源，快速解锁现代化WinForm界面开发！&lt;/span&gt;&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;70&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__64 js_darkmode__text__182&quot;&gt;&lt;span class=&quot;js_darkmode__text__183&quot;&gt;其实WinForm开发不用“死磕”手写界面，选对工具就能事半功倍。这4个开源控件库，覆盖了从新手到企业级的所有场景，帮你节省80%的界面开发时间，专注核心业务逻辑，提升开发效率和项目质感。&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;71&quot; style=&quot;font-size: 17px;font-weight: 400;color: rgba(0,0,0,0.9);line-height: 1.8;margin-bottom: 24px;&quot; class=&quot;js_darkmode__65 js_darkmode__text__184&quot;&gt;&lt;span class=&quot;js_darkmode__text__185&quot;&gt;如果觉得有用，记得点赞、在看、转发，让更多WinForm开发者少走弯路～ 评论区聊聊，你平时用哪个UI控件库？遇到过哪些坑？&lt;/span&gt;&lt;/section&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Mon, 13 Apr 2026 11:23:05 +0800</pubDate></item></channel></rss>