<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Mudrock__的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Mudrock__</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Mudrock__]]></copyright><item><title><![CDATA[ASP.NET Core_Jwt AccessToken与HTTPS重定向]]></title><link>https://blog.youkuaiyun.com/Mudrock__/article/details/162879405</link><guid>https://blog.youkuaiyun.com/Mudrock__/article/details/162879405</guid><author>Mudrock__</author><pubDate>Tue, 14 Jul 2026 18:02:54 +0800</pubDate><description><![CDATA[则会发生：HTTP到HTTPS的重定向导致AccessToken遗失，表现为明明前端传递了AccessToken而后端却未收到（Request.Headers.Authorization == ""），请求结果为未授权（401 Unauthorized）前端发起HTTP请求，而后端设置了。]]></description><category></category></item><item><title><![CDATA[.Net_暂停代码执行]]></title><link>https://blog.youkuaiyun.com/Mudrock__/article/details/157067958</link><guid>https://blog.youkuaiyun.com/Mudrock__/article/details/157067958</guid><author>Mudrock__</author><pubDate>Sat, 17 Jan 2026 21:14:53 +0800</pubDate><description><![CDATA[不建议用该方式实现前文所述的两种"广播式"暂停，因为SemaphoreSlim存在不可见性，即令牌为零时，无法知晓到底有多少个WaitAsync()在等待令牌，为了准确控制Release()的执行次数还需要额外维护计数。此外，二者均支持多处暂停。构造函数中的参数决定该字段的初始状态为signaled或nonsignaled，前者允许线程通过Wait()，后者不允许。Reset()令字段恢复为nonsignaled状态，否则一旦Set()，无论Wait()多少次线程都能通过。]]></description><category></category></item><item><title><![CDATA[Avalonia_SukiUI明暗主题切换时部分元素颜色不变]]></title><link>https://blog.youkuaiyun.com/Mudrock__/article/details/150397025</link><guid>https://blog.youkuaiyun.com/Mudrock__/article/details/150397025</guid><author>Mudrock__</author><pubDate>Thu, 14 Aug 2025 18:11:15 +0800</pubDate><description><![CDATA[背景：正在开发 Raspberry Pi OS Lite 的 Avalonia 项目，而 Lite 系统无桌面，所以需要使用 UserControl 替代 Window(SukiWindow) 作为主视图，但不使用 SukiWindow 会导致项目明暗主题切换时，TextBlock、Label 等控件的文本将不会随主题改变而改变。给 UserControl 添加 Foreground="{DynamicResource SystemControlForegroundBaseHighBrush}"]]></description><category></category></item><item><title><![CDATA[Avalonia_部署到Raspberry Pi OS Lite的注意点]]></title><link>https://blog.youkuaiyun.com/Mudrock__/article/details/150394882</link><guid>https://blog.youkuaiyun.com/Mudrock__/article/details/150394882</guid><author>Mudrock__</author><pubDate>Thu, 14 Aug 2025 17:54:55 +0800</pubDate><description><![CDATA[View 是通过反射调用的，代码中无直接引用，会被裁剪 => ViewLocator 根据 ViewModel 的命名尝试通过反射调用 View，但无法做到，体现为该页面显示 Not Found: YourProject.Views.YourView。此时可通过指令 ls /dev/dri 查看 DRM 设备节点，通常会有 card0 与 card1，其中 card0 是内置GPU，可在 StartLinuxDrm 函数中添加 card: "/dev/dri/card0" 参数来指定渲染设备。]]></description><category></category></item><item><title><![CDATA[C#_委托/事件碎碎念]]></title><link>https://blog.youkuaiyun.com/Mudrock__/article/details/149169458</link><guid>https://blog.youkuaiyun.com/Mudrock__/article/details/149169458</guid><author>Mudrock__</author><pubDate>Mon, 07 Jul 2025 12:36:34 +0800</pubDate><description><![CDATA[部分情况下可以为Action传入异步委托：异步函数返回值为void时符合条件（只是此时的异步函数是"以同步方式运行的异步函数"，无意义），为Task时Task会被隐式遗弃，为Task<T>时无法编译通过（Task<T>无法隐式遗弃，而Action不接受返回值），所以当异步委托返回值为void或Task时可以将其传入给Action。为Func<Task>形参传入Func<Task<T>>委托，可以执行，编译器会将其封装为Func<Task>，但是无法获取返回值T。将委托实例赋值给委托变量。]]></description><category></category></item><item><title><![CDATA[.NET_Prism事件聚合]]></title><link>https://blog.youkuaiyun.com/Mudrock__/article/details/146297179</link><guid>https://blog.youkuaiyun.com/Mudrock__/article/details/146297179</guid><author>Mudrock__</author><pubDate>Sun, 16 Mar 2025 18:18:27 +0800</pubDate><description><![CDATA[示例：_eventAggregator.GetEvent<MessageEvent>().Subscribe(处理函数)示例：_eventAggregator.GetEvent<MessageEvent>().Publish("消息")Prism 提供了 IEventAggregator。，而不需要它们直接依赖彼此。在 Prism 中，]]></description><category></category></item><item><title><![CDATA[.NET_Prism基本项目创建]]></title><link>https://blog.youkuaiyun.com/Mudrock__/article/details/146295416</link><guid>https://blog.youkuaiyun.com/Mudrock__/article/details/146295416</guid><author>Mudrock__</author><pubDate>Sun, 16 Mar 2025 16:31:32 +0800</pubDate><description><![CDATA[①. 添加命名空间②. 将标签名修改为① 实现PrismApplication类② 重写与③ （可选）重写与。]]></description><category></category></item><item><title><![CDATA[ASP.NET_静态文件目录的创建与使用]]></title><link>https://blog.youkuaiyun.com/Mudrock__/article/details/145905958</link><guid>https://blog.youkuaiyun.com/Mudrock__/article/details/145905958</guid><author>Mudrock__</author><pubDate>Thu, 27 Feb 2025 15:59:35 +0800</pubDate><description><![CDATA[3. 由于设置了路径映射，所以可通过 http://ip:port/static/text.txt 访问文件。例如：存在文件text.txt，则可通过 http://ip:port/text.txt 访问文件。2. 在项目根目录添加"wwwroot"文件夹，此为默认静态文件根目录，并在其中添加静态文件。1. 添加静态文件中间件，指定静态文件根目录并设置路径映射，此处仅作示例，具体以实际项目为准。1. 添加静态文件中间件。2. 添加文件夹与文件。]]></description><category></category></item><item><title><![CDATA[ASP.NET Core WebAPI_Program.cs小记]]></title><link>https://blog.youkuaiyun.com/Mudrock__/article/details/144298387</link><guid>https://blog.youkuaiyun.com/Mudrock__/article/details/144298387</guid><author>Mudrock__</author><pubDate>Fri, 06 Dec 2024 18:50:16 +0800</pubDate><description><![CDATA[ASP.NET Core WebAPI_Program.cs小记]]></description><category></category></item><item><title><![CDATA[EFCore_级联删除]]></title><link>https://blog.youkuaiyun.com/Mudrock__/article/details/144290252</link><guid>https://blog.youkuaiyun.com/Mudrock__/article/details/144290252</guid><author>Mudrock__</author><pubDate>Fri, 06 Dec 2024 13:35:15 +0800</pubDate><description><![CDATA[当删除一个表中的记录时，自动删除与之关联的其他表中依赖该记录的所有数据，以维护数据完整性。注解: 目前EF并未提供标准注解以配置级联删除。]]></description><category></category></item><item><title><![CDATA[ASP.NET Core WebAPI_自包含模式]]></title><link>https://blog.youkuaiyun.com/Mudrock__/article/details/143995703</link><guid>https://blog.youkuaiyun.com/Mudrock__/article/details/143995703</guid><author>Mudrock__</author><pubDate>Sat, 23 Nov 2024 17:39:50 +0800</pubDate><description><![CDATA[自包含模式]]></description><category></category></item><item><title><![CDATA[前后端传输文件（图片）]]></title><link>https://blog.youkuaiyun.com/Mudrock__/article/details/142174288</link><guid>https://blog.youkuaiyun.com/Mudrock__/article/details/142174288</guid><author>Mudrock__</author><pubDate>Sat, 05 Oct 2024 17:41:17 +0800</pubDate><description><![CDATA[在Controller层将图片封装为FileStreamResult类型。3.在Service层将图片保存在本地（此处仅作示例，以实际方式为准）将图片以byte数组的格式加载至内存（此处仅作示例，以实际方式为准）1.在Controller层设置参数注解[FromForm]2.在实体中通过IFormFile类型的属性接收图片。前端接收到的数据类型即为blob，处理方式可参照前文。2.将数据封装为 FormData 类型。1.设置 header 为。]]></description><category></category></item><item><title><![CDATA[Quartz_将持久化配置写在appsettings.json中]]></title><link>https://blog.youkuaiyun.com/Mudrock__/article/details/142148705</link><guid>https://blog.youkuaiyun.com/Mudrock__/article/details/142148705</guid><author>Mudrock__</author><pubDate>Thu, 12 Sep 2024 13:12:47 +0800</pubDate><description><![CDATA[此处仅作示例，依据实际情况进行修改需要说明的是，详细配置不可写成对象的形式，必需以XXX.YYY.ZZZ的形式书写。]]></description><category></category></item><item><title><![CDATA[Quartz.Net_侦听触发器]]></title><link>https://blog.youkuaiyun.com/Mudrock__/article/details/141825266</link><guid>https://blog.youkuaiyun.com/Mudrock__/article/details/141825266</guid><author>Mudrock__</author><pubDate>Mon, 02 Sep 2024 17:33:58 +0800</pubDate><description><![CDATA[1.实现ITriggerListener接口，并实现其函数，具体说明见代码注释。触发器执行任务时存在数个阶段，利用侦听器可以在对应的阶段执行一些代码。2.为调度器添加侦听器。]]></description><category></category></item><item><title><![CDATA[Quartz.Net_持久化]]></title><link>https://blog.youkuaiyun.com/Mudrock__/article/details/141823370</link><guid>https://blog.youkuaiyun.com/Mudrock__/article/details/141823370</guid><author>Mudrock__</author><pubDate>Mon, 02 Sep 2024 17:11:01 +0800</pubDate><description><![CDATA[答：因为我本人平时是使用Pomelo.EntityFrameworkCore.MySql连接DB的，但Quartz.Net硬编码使用MySql.Data连接DB。通常而言，Quartz.Net的数据默认是存储在运存中的，换言之：断电即失。所以在默认情况下，当系统重启后，原先的所有任务、触发器、调度器都会失效。问：为什么需要同时安装MySql.Data与Pomelo.EntityFrameworkCore.MySql？为避免上述情况的发生，可以对Quartz.Net进行持久化设置，令数据储存在DB中。]]></description><category></category></item><item><title><![CDATA[Quartz.Net_错过策略]]></title><link>https://blog.youkuaiyun.com/Mudrock__/article/details/141820954</link><guid>https://blog.youkuaiyun.com/Mudrock__/article/details/141820954</guid><author>Mudrock__</author><pubDate>Mon, 02 Sep 2024 16:09:04 +0800</pubDate><description><![CDATA[假设一个任务需要重复执行五次，执行的时间点分别为 00:10、00:20、00:30、00:40 和 00:50。现在错过了第二次（00:20）和第三次（00:30）的执行，在 00:35 重新启动了服务。CronTrigger.MisfireInstruction.FireOnceNow：立即执行一次，然后根据原计划的 cron 表达式继续执行。总次数 = 原总次数 - 错过的次数 + 1（立即执行的一次）后续执行次数 = 原总次数 - 已执行次数 - 错过次数。立即执行一次，然后根据。]]></description><category></category></item><item><title><![CDATA[Quartz.Net_依赖注入]]></title><link>https://blog.youkuaiyun.com/Mudrock__/article/details/141819076</link><guid>https://blog.youkuaiyun.com/Mudrock__/article/details/141819076</guid><author>Mudrock__</author><pubDate>Mon, 02 Sep 2024 15:20:02 +0800</pubDate><description><![CDATA[该情况通常出现在低版本中，较高版本中可以通过以下方式开启依赖注入支持，更高的版本中默认使用DI而无需使用该函数，且该函数会在未来被移除(具体的版本分界线我并不清楚)有时会遇到需要在IJob实现类中依赖注入其他类或接口的情况，但Quartz的默认JobFactory并不能识别具有。3.将IJob实现类、IJobFactory实现类、需要被依赖注入的类（TestClass）添加进容器。实现IJobFactory接口。的IJob实现类，也就无法进行依赖注入。]]></description><category></category></item><item><title><![CDATA[Quartz.Net_快速开始]]></title><link>https://blog.youkuaiyun.com/Mudrock__/article/details/141813142</link><guid>https://blog.youkuaiyun.com/Mudrock__/article/details/141813142</guid><author>Mudrock__</author><pubDate>Mon, 02 Sep 2024 13:49:11 +0800</pubDate><description><![CDATA[Quartz中主要分为三部分，JobDetail、Trigger、Scheduler，分别是任务、触发器、调度器，三者的关系为：Trigger控制JobDetail的执行时间和频率，而Scheduler负责将具体的Trigger与具体的JobDetail绑定。Execute函数中的代码即为定时任务执行的操作。③创建Scheduler（可使用单例封装）①创建IJob实现类（实现IJob接口）1.安装Quartz依赖。②创建Trigger。]]></description><category></category></item><item><title><![CDATA[EFCore_循环获取多级导航属性]]></title><link>https://blog.youkuaiyun.com/Mudrock__/article/details/140734017</link><guid>https://blog.youkuaiyun.com/Mudrock__/article/details/140734017</guid><author>Mudrock__</author><pubDate>Sat, 27 Jul 2024 13:07:12 +0800</pubDate><description><![CDATA[EFCore_循环获取多级导航属性。]]></description><category></category></item><item><title><![CDATA[Git_基础命令]]></title><link>https://blog.youkuaiyun.com/Mudrock__/article/details/140645451</link><guid>https://blog.youkuaiyun.com/Mudrock__/article/details/140645451</guid><author>Mudrock__</author><pubDate>Tue, 23 Jul 2024 20:25:40 +0800</pubDate><description><![CDATA[git branch 查看节点, 当前节点前会被标注*(当前节点是主节点就只能看到主节点, 否则看到主节点与当前节点)git commit - m "xxx" 提交缓冲区中的更新, 并附说明xxx(说明不允许为空, 否则提交被取消)git push -u origin xxx 将提交推送至名为xxx的分支, 且将该分支作为默认分支。git checkout -b xxx 创建并切换到名为xxx的分支。git push origin xxx 将提交推送至名为xxx的分支。3.切换到要合并的分支。]]></description><category></category></item></channel></rss>