<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0"><channel><title>如诗</title><link>https://likepoems.com/</link><atom:link href="https://likepoems.com/rss.xml" rel="self" type="application/rss+xml"/><description>写代码，也写生活</description><generator>Halo v2.22.14</generator><language>zh-cn</language><image><url>https://static.likepoems.com/cdn/images/logo.jpg</url><title>如诗</title><link>https://likepoems.com/</link></image><lastBuildDate>Sat, 7 Mar 2026 21:49:01 GMT</lastBuildDate><item><title><![CDATA[csharp通过对象和模板字符串解析模板]]></title><link>https://likepoems.com/archives/csharp-parses-templates</link><description><![CDATA[<img src="https://likepoems.com/plugins/feed/assets/telemetry.gif?title=csharp%E9%80%9A%E8%BF%87%E5%AF%B9%E8%B1%A1%E5%92%8C%E6%A8%A1%E6%9D%BF%E5%AD%97%E7%AC%A6%E4%B8%B2%E8%A7%A3%E6%9E%90%E6%A8%A1%E6%9D%BF&amp;url=/archives/csharp-parses-templates" width="1" height="1" alt="" style="opacity:0;">通过模板字符串和一个匿名对象来解析字符串，这种需求比较常见，对于比较简单的模板字符串，我们可以直接替换，但对于比较复杂的模板，我们可以通过模板工具来实现。 Scriban简介 Scriban是一个适用于.Net的一款轻量级的脚本引擎。 通过包管理进行安装： 官方案例： var template =]]></description><guid isPermaLink="false">/archives/csharp-parses-templates</guid><dc:creator>如诗</dc:creator><category>c#</category><pubDate>Fri, 14 Nov 2025 16:00:00 GMT</pubDate></item><item><title><![CDATA[csharp实现两个对象的合并]]></title><link>https://likepoems.com/archives/csharp-merges-two-objects</link><description><![CDATA[<img src="https://likepoems.com/plugins/feed/assets/telemetry.gif?title=csharp%E5%AE%9E%E7%8E%B0%E4%B8%A4%E4%B8%AA%E5%AF%B9%E8%B1%A1%E7%9A%84%E5%90%88%E5%B9%B6&amp;url=/archives/csharp-merges-two-objects" width="1" height="1" alt="" style="opacity:0;">在一些情况下，我们并不清楚匿名对象具备哪些属性，当需要合并两个匿名对象时，手动实现比较复杂，可以直接使用TypeMerger来实现merge TypeMerger简单使用 TypeMerger是 .NET Core中的对象合并方法，支持多种合并处理方式，这里只简单的使用一下。 使用包管理进行安装：]]></description><guid isPermaLink="false">/archives/csharp-merges-two-objects</guid><dc:creator>如诗</dc:creator><category>c#</category><pubDate>Wed, 12 Nov 2025 09:17:16 GMT</pubDate></item><item><title><![CDATA[c# sqlserver大量插入数据解决方案]]></title><link>https://likepoems.com/archives/csharp-sqlserver-bulk-data-insertion-solution</link><description><![CDATA[<img src="https://likepoems.com/plugins/feed/assets/telemetry.gif?title=c%23%20sqlserver%E5%A4%A7%E9%87%8F%E6%8F%92%E5%85%A5%E6%95%B0%E6%8D%AE%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88&amp;url=/archives/csharp-sqlserver-bulk-data-insertion-solution" width="1" height="1" alt="" style="opacity:0;">最近做了一个.NET Framework 程序，将从远程接口请求的数据同步到sqlserver数据库中；当数据量小的时候，常规的添加操作是没什么问题的。但数据量比较大时（通常1000行及以上），会花费比较多的时间。这时SqlBulkCopy就能显著的解决这个问题。 1、SqlBulkCopy介绍 S]]></description><guid isPermaLink="false">/archives/csharp-sqlserver-bulk-data-insertion-solution</guid><dc:creator>如诗</dc:creator><category>c#</category><pubDate>Fri, 17 Oct 2025 10:02:07 GMT</pubDate></item><item><title><![CDATA[dotnet “GenerateDepsFile”任务意外失败解决方案]]></title><link>https://likepoems.com/archives/dotnet-generatedepsfile-ren-wu-yi-wai-shi-bai-jie-jue-fang-an</link><description><![CDATA[<img src="https://likepoems.com/plugins/feed/assets/telemetry.gif?title=dotnet%20%E2%80%9CGenerateDepsFile%E2%80%9D%E4%BB%BB%E5%8A%A1%E6%84%8F%E5%A4%96%E5%A4%B1%E8%B4%A5%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88&amp;url=/archives/dotnet-generatedepsfile-ren-wu-yi-wai-shi-bai-jie-jue-fang-an" width="1" height="1" alt="" style="opacity:0;">近期在运行.net项目时，遇到了“GenerateDepsFile”任务意外失败的问题，错误详情如下： 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 MSB4018 “GenerateDepsFile”任务意外失败。 System.IO.FileNotFoundException: 未能加]]></description><guid isPermaLink="false">/archives/dotnet-generatedepsfile-ren-wu-yi-wai-shi-bai-jie-jue-fang-an</guid><dc:creator>如诗</dc:creator><category>c#</category><pubDate>Tue, 9 Sep 2025 08:37:07 GMT</pubDate></item><item><title><![CDATA[C# Newtonsoft自定义JsonConverter]]></title><link>https://likepoems.com/archives/csharp-newtonsoft-custom-json-converter</link><description><![CDATA[<img src="https://likepoems.com/plugins/feed/assets/telemetry.gif?title=C%23%20Newtonsoft%E8%87%AA%E5%AE%9A%E4%B9%89JsonConverter&amp;url=/archives/csharp-newtonsoft-custom-json-converter" width="1" height="1" alt="" style="opacity:0;">在C#中，我们使用Newtonsoft来对JSON对象或字段串进行序列化和反序列化的操作，但在某些场景下，需要在映射过程中需要对属性进行更改。 1、JsonProperty JsonProperty用于指定特定字段的名称，将一个字段指定为另一个字段，示例如下： public class UserIn]]></description><guid isPermaLink="false">/archives/csharp-newtonsoft-custom-json-converter</guid><dc:creator>如诗</dc:creator><category>服务端</category><category>c#</category><pubDate>Tue, 18 Mar 2025 08:26:00 GMT</pubDate></item><item><title><![CDATA[argon主题调整日记]]></title><link>https://likepoems.com/archives/the-argon-topic-adjustment-diary</link><description><![CDATA[<img src="https://likepoems.com/plugins/feed/assets/telemetry.gif?title=argon%E4%B8%BB%E9%A2%98%E8%B0%83%E6%95%B4%E6%97%A5%E8%AE%B0&amp;url=/archives/the-argon-topic-adjustment-diary" width="1" height="1" alt="" style="opacity:0;">前言 argon主题是一款由solstice23开发的一款简洁美观的WordPress主题，在使用过程中也发现了几个可以优化的点，在查阅主题文档无果后对其进行以下几点修改。 1、使用子主题 为了避免修改源文件而引起主题更新后修改丢失的问题，还是尽量使用子主题来进行修改。 在主题文件夹目录下，创建一个]]></description><guid isPermaLink="false">/archives/the-argon-topic-adjustment-diary</guid><dc:creator>如诗</dc:creator><category>随心记</category><pubDate>Sat, 20 Jul 2024 12:45:00 GMT</pubDate></item><item><title><![CDATA[React hooks子组件暴露方法示例]]></title><link>https://likepoems.com/archives/react-hooks-example-of-the-subcomponent-exposure-method</link><description><![CDATA[<img src="https://likepoems.com/plugins/feed/assets/telemetry.gif?title=React%20hooks%E5%AD%90%E7%BB%84%E4%BB%B6%E6%9A%B4%E9%9C%B2%E6%96%B9%E6%B3%95%E7%A4%BA%E4%BE%8B&amp;url=/archives/react-hooks-example-of-the-subcomponent-exposure-method" width="1" height="1" alt="" style="opacity:0;">说明 通常情况下，React 子组件使用父组件的方法或值通过props传递，反过来，父组件如果需要子组件的方法就需要子组件将自己的方法暴露出去。以下是一个实例： User.tsx import React, { FC, useEffect, useState, useRef } from 'reac]]></description><guid isPermaLink="false">/archives/react-hooks-example-of-the-subcomponent-exposure-method</guid><dc:creator>如诗</dc:creator><category>前端</category><category>web框架</category><pubDate>Thu, 1 Feb 2024 09:23:00 GMT</pubDate></item><item><title><![CDATA[JavaScript实现右键菜单]]></title><link>https://likepoems.com/archives/rightmenu-by-javascript</link><description><![CDATA[<img src="https://likepoems.com/plugins/feed/assets/telemetry.gif?title=JavaScript%E5%AE%9E%E7%8E%B0%E5%8F%B3%E9%94%AE%E8%8F%9C%E5%8D%95&amp;url=/archives/rightmenu-by-javascript" width="1" height="1" alt="" style="opacity:0;">1、代码实现 window.onload = function () { (function () { // 自定义右键菜单内容并插入到body最后一个节点前 let dom = ` &lt;div id="rightMenuBars"&gt; &lt;div cl]]></description><guid isPermaLink="false">/archives/rightmenu-by-javascript</guid><dc:creator>如诗</dc:creator><category>前端</category><pubDate>Wed, 22 Nov 2023 08:08:00 GMT</pubDate></item><item><title><![CDATA[React将数据转化成树形结构]]></title><link>https://likepoems.com/archives/react-tree-structure-data</link><description><![CDATA[<img src="https://likepoems.com/plugins/feed/assets/telemetry.gif?title=React%E5%B0%86%E6%95%B0%E6%8D%AE%E8%BD%AC%E5%8C%96%E6%88%90%E6%A0%91%E5%BD%A2%E7%BB%93%E6%9E%84&amp;url=/archives/react-tree-structure-data" width="1" height="1" alt="" style="opacity:0;">1、React将数据转化成树形结构 // 初始数据 let result = [ { parentId: null, id: 1, name: "书籍", count: 100 }, { parentId: 1, id: 2, name: "西游记", count: 50 }, { p]]></description><guid isPermaLink="false">/archives/react-tree-structure-data</guid><dc:creator>如诗</dc:creator><category>前端</category><category>web框架</category><pubDate>Mon, 3 Jul 2023 08:54:00 GMT</pubDate></item><item><title><![CDATA[新浪图片403解决办法]]></title><link>https://likepoems.com/archives/sina-image-403-solution</link><description><![CDATA[<img src="https://likepoems.com/plugins/feed/assets/telemetry.gif?title=%E6%96%B0%E6%B5%AA%E5%9B%BE%E7%89%87403%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95&amp;url=/archives/sina-image-403-solution" width="1" height="1" alt="" style="opacity:0;">1、403 Forbidden 403通常表示没有权限访问某个资源，当资源来源开启了防盗链后，只有白名单下的来源才能访问。 2、解决方案 使用图片缓存服务： i0/1/2/3.wp.com cdn.cdnjson.com https://image.baidu.com/search/down?url]]></description><guid isPermaLink="false">/archives/sina-image-403-solution</guid><dc:creator>如诗</dc:creator><category>随心记</category><pubDate>Sat, 10 Jun 2023 07:22:00 GMT</pubDate></item><item><title><![CDATA[js比较前后两个数组对象的差异]]></title><link>https://likepoems.com/archives/the-differences-between-the-two-array-objects-before-and-after-the-js-comparison</link><description><![CDATA[<img src="https://likepoems.com/plugins/feed/assets/telemetry.gif?title=js%E6%AF%94%E8%BE%83%E5%89%8D%E5%90%8E%E4%B8%A4%E4%B8%AA%E6%95%B0%E7%BB%84%E5%AF%B9%E8%B1%A1%E7%9A%84%E5%B7%AE%E5%BC%82&amp;url=/archives/the-differences-between-the-two-array-objects-before-and-after-the-js-comparison" width="1" height="1" alt="" style="opacity:0;">比较前后两个数组对象的差异 js比较前后两个数组对象的差异，比如是添加了什么数据或者删除了什么数据。 // 两个数组对象中有相同的键如 id // 其中, oldData为初始数据, newData为当前数据 const getChangeData = (oldData, newData) =&gt; {]]></description><guid isPermaLink="false">/archives/the-differences-between-the-two-array-objects-before-and-after-the-js-comparison</guid><dc:creator>如诗</dc:creator><category>前端</category><pubDate>Tue, 7 Mar 2023 05:42:00 GMT</pubDate></item><item><title><![CDATA[react antd 实现图片自定义预览]]></title><link>https://likepoems.com/archives/react-antd-photo-preview</link><description><![CDATA[<img src="https://likepoems.com/plugins/feed/assets/telemetry.gif?title=react%20antd%20%E5%AE%9E%E7%8E%B0%E5%9B%BE%E7%89%87%E8%87%AA%E5%AE%9A%E4%B9%89%E9%A2%84%E8%A7%88&amp;url=/archives/react-antd-photo-preview" width="1" height="1" alt="" style="opacity:0;">功能需求 有这样一个需求，用户点击文字或者按钮，会弹出图片的预览界面，要求图片可旋转，可缩放以及可下载。由于antd组件的Image的预览窗口不包含图片下载的功能，所以这里通过modal对img添加预览模块。 实现过程 代码如下： import React from 'react'; import]]></description><guid isPermaLink="false">/archives/react-antd-photo-preview</guid><dc:creator>如诗</dc:creator><category>前端</category><category>web框架</category><pubDate>Fri, 10 Feb 2023 09:02:00 GMT</pubDate></item><item><title><![CDATA[react antd select组件添加全选功能]]></title><link>https://likepoems.com/archives/react-antd-select-full-selection-of-components</link><description><![CDATA[<img src="https://likepoems.com/plugins/feed/assets/telemetry.gif?title=react%20antd%20select%E7%BB%84%E4%BB%B6%E6%B7%BB%E5%8A%A0%E5%85%A8%E9%80%89%E5%8A%9F%E8%83%BD&amp;url=/archives/react-antd-select-full-selection-of-components" width="1" height="1" alt="" style="opacity:0;">1、需求 最近遇到一个需求，一张表格中需要有个下拉框，antd官网中有相应的Select组件，但是由于数据比较多，用户需要一个全选的需求。即点击全选下拉框数据全部选中，再次点击取消全选即选中的数据清空。然后数据一条一条点击完后全选框会被选中，反之不会被选中。 2、实现代码 import React]]></description><guid isPermaLink="false">/archives/react-antd-select-full-selection-of-components</guid><dc:creator>如诗</dc:creator><category>前端</category><category>web框架</category><pubDate>Wed, 4 Jan 2023 08:07:00 GMT</pubDate></item><item><title><![CDATA[React 函数组件]]></title><link>https://likepoems.com/archives/react-function-component</link><description><![CDATA[<img src="https://likepoems.com/plugins/feed/assets/telemetry.gif?title=React%20%E5%87%BD%E6%95%B0%E7%BB%84%E4%BB%B6&amp;url=/archives/react-function-component" width="1" height="1" alt="" style="opacity:0;">React 函数组件 1、定义方式 React 函数组件是指使用函数方法定义的组件。 定义方式：与函数的定义方式相同，需要将内容 return 出来，需要注意的是最外层只有一个标签或者使用&lt;&gt;&lt;/&gt;(Fragment 标签)包裹起来，方法写在 return 前面。 const App = () =&gt;]]></description><guid isPermaLink="false">/archives/react-function-component</guid><dc:creator>如诗</dc:creator><category>前端</category><category>web框架</category><pubDate>Thu, 3 Nov 2022 10:54:00 GMT</pubDate></item><item><title><![CDATA[React 中的常用方法]]></title><link>https://likepoems.com/archives/common-methods-in-react</link><description><![CDATA[<img src="https://likepoems.com/plugins/feed/assets/telemetry.gif?title=React%20%E4%B8%AD%E7%9A%84%E5%B8%B8%E7%94%A8%E6%96%B9%E6%B3%95&amp;url=/archives/common-methods-in-react" width="1" height="1" alt="" style="opacity:0;">React 中的常用方法 1、合并数组 // 合并数组并去重 mergeArray = (arr1, arr2) =&gt; { return Array.from(new Set([...arr1, ...arr2])); }; 2、合并数组对象 // 合并具有相同属性的对象 mergeObjec]]></description><guid isPermaLink="false">/archives/common-methods-in-react</guid><dc:creator>如诗</dc:creator><category>前端</category><category>web框架</category><pubDate>Mon, 24 Oct 2022 06:47:00 GMT</pubDate></item><item><title><![CDATA[如何快速干净的卸载软件]]></title><link>https://likepoems.com/archives/how-to-uninstall-software-quickly-and-cleanly</link><description><![CDATA[<img src="https://likepoems.com/plugins/feed/assets/telemetry.gif?title=%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E5%B9%B2%E5%87%80%E7%9A%84%E5%8D%B8%E8%BD%BD%E8%BD%AF%E4%BB%B6&amp;url=/archives/how-to-uninstall-software-quickly-and-cleanly" width="1" height="1" alt="" style="opacity:0;">前言 我们平时都是通过一些杀毒软件或者控制面板来对软件进行卸载操作的，但这样卸载并不干净，注册表中存在的条目可能没删除或删除干净。而且杀毒软件还比较占用系统资源。 geek 根据geek官方介绍，能够对软件进行清洁去除和强制删除，支持64位的操作系统，而且软件轻量，只有6M左右，支持卸载应用商店的程]]></description><guid isPermaLink="false">/archives/how-to-uninstall-software-quickly-and-cleanly</guid><dc:creator>如诗</dc:creator><category>随心记</category><pubDate>Fri, 26 Aug 2022 11:17:00 GMT</pubDate></item><item><title><![CDATA[C#实现xlsx文件导出]]></title><link>https://likepoems.com/archives/csharp-implements-xlsx-file-export</link><description><![CDATA[<img src="https://likepoems.com/plugins/feed/assets/telemetry.gif?title=C%23%E5%AE%9E%E7%8E%B0xlsx%E6%96%87%E4%BB%B6%E5%AF%BC%E5%87%BA&amp;url=/archives/csharp-implements-xlsx-file-export" width="1" height="1" alt="" style="opacity:0;">model 实体 namespace Test.Models.Book { public class BookModel { public int BookId { get; set; } public string FileName { get; s]]></description><guid isPermaLink="false">/archives/csharp-implements-xlsx-file-export</guid><dc:creator>如诗</dc:creator><category>服务端</category><category>c#</category><pubDate>Wed, 17 Aug 2022 08:05:00 GMT</pubDate></item><item><title><![CDATA[免费观看腾讯视频/优酷/爱奇艺/VIP影片]]></title><link>https://likepoems.com/archives/watch-tencent-youku-iqiyi-video-vip-movies-for-free</link><description><![CDATA[<img src="https://likepoems.com/plugins/feed/assets/telemetry.gif?title=%E5%85%8D%E8%B4%B9%E8%A7%82%E7%9C%8B%E8%85%BE%E8%AE%AF%E8%A7%86%E9%A2%91%2F%E4%BC%98%E9%85%B7%2F%E7%88%B1%E5%A5%87%E8%89%BA%2FVIP%E5%BD%B1%E7%89%87&amp;url=/archives/watch-tencent-youku-iqiyi-video-vip-movies-for-free" width="1" height="1" alt="" style="opacity:0;">在视频的播放页地址栏最前面添加wn.run/跳转到在线工具页面，然后选择播放工具，复制视频地址即可进行解析和播放。 或者在浏览器输入以下地址，将要播放的视频地址复制解析框中，选择解析方式，进行解析和播放。 https://v.1314.in/ https://vip.huayao88.com]]></description><guid isPermaLink="false">/archives/watch-tencent-youku-iqiyi-video-vip-movies-for-free</guid><dc:creator>如诗</dc:creator><category>随心记</category><pubDate>Thu, 11 Aug 2022 08:30:00 GMT</pubDate></item><item><title><![CDATA[批量获取文件名]]></title><link>https://likepoems.com/archives/batch-to-get-file-names</link><description><![CDATA[<img src="https://likepoems.com/plugins/feed/assets/telemetry.gif?title=%E6%89%B9%E9%87%8F%E8%8E%B7%E5%8F%96%E6%96%87%E4%BB%B6%E5%90%8D&amp;url=/archives/batch-to-get-file-names" width="1" height="1" alt="" style="opacity:0;">如何获取某一目录下的文件名称 创建bat文件，使用记事本编辑： dir /b &gt;list.txt 保存，双击运行，打开list.txt文件]]></description><guid isPermaLink="false">/archives/batch-to-get-file-names</guid><dc:creator>如诗</dc:creator><category>随心记</category><pubDate>Wed, 3 Aug 2022 09:14:00 GMT</pubDate></item><item><title><![CDATA[谷歌字体使用方案]]></title><link>https://likepoems.com/archives/google-font-usage-scheme</link><description><![CDATA[<img src="https://likepoems.com/plugins/feed/assets/telemetry.gif?title=%E8%B0%B7%E6%AD%8C%E5%AD%97%E4%BD%93%E4%BD%BF%E7%94%A8%E6%96%B9%E6%A1%88&amp;url=/archives/google-font-usage-scheme" width="1" height="1" alt="" style="opacity:0;">谷歌字体库（Google Fonts） 官方：https://fonts.googleapis.com/ loli加速：https://fonts.loli.net/ 极客族加速：https://fonts.geekzu.org/]]></description><guid isPermaLink="false">/archives/google-font-usage-scheme</guid><dc:creator>如诗</dc:creator><category>随心记</category><pubDate>Wed, 3 Aug 2022 03:11:00 GMT</pubDate></item></channel></rss>