怪奇物语

怪奇物语

首页 新随笔 联系 管理

2025年10月27日 #

摘要: .NET 宿主与后台服务:深入理解 BackgroundService 与生命周期令牌 在 .NET 生态中,构建长期运行的服务(如后台任务、定时任务、消息消费者等)时,IHost(宿主)和 BackgroundService 是两个核心组件。它们不仅能帮助我们管理服务的生命周期,还能通过 Canc 阅读全文
posted @ 2025-10-27 08:00 超级无敌美少男战士 阅读(7) 评论(0) 推荐(0)

摘要: RPC ServiceModel.Grpc C# 在 DogWatcher 和 HeartbeatService 中,CancellationToken 的核心作用是响应外部取消信号(如服务停止、客户端断开连接等),避免资源泄漏并确保程序优雅退出。以下是具体的使用分析和优化建议: 一、Cancell 阅读全文
posted @ 2025-10-27 08:00 超级无敌美少男战士 阅读(5) 评论(0) 推荐(0)

2025年10月16日 #

摘要: System.Data.OracleClient.dll .netframework中自带的dll, "C:\Windows\Microsoft.NET\Framework64\v2.0.50727\System.Data.OracleClient.dll" `` 阅读全文
posted @ 2025-10-16 08:00 超级无敌美少男战士 阅读(3) 评论(0) 推荐(0)

2025年9月4日 #

摘要: 要去看看有没有设置代理,以前设置的代理自己都忘了,然后死活请求都是不行。 File>Settings>Proxy 将use the system proxy 或者 Add a customr proxy configuration给勾掉 阅读全文
posted @ 2025-09-04 08:00 超级无敌美少男战士 阅读(27) 评论(0) 推荐(0)

2025年9月3日 #

摘要: dotnet cli,.net6,.net7.net8, xxx.csproj 外部 DLL 引用,目录文件拷贝,引用外部 dll .csproj 文件配置 <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net6 阅读全文
posted @ 2025-09-03 08:00 超级无敌美少男战士 阅读(16) 评论(0) 推荐(0)

摘要: C# HTTP请求重试处理器:实现与使用指南 在网络请求场景中,临时网络波动、服务器短暂不可用等问题时常发生。为提高HTTP请求的稳定性,重试机制是一种常见且有效的解决方案。本文将详细解析一个C#编写的HttpRetryHandler类,包括其核心功能、代码注解及使用方法,方便开发者集成到项目中。 阅读全文
posted @ 2025-09-03 08:00 超级无敌美少男战士 阅读(69) 评论(0) 推荐(0)

2025年7月26日 #

摘要: using System.Collections.Concurrent; using System.Diagnostics; // 发布命令 (不包含调试信息) // dotnet publish .\CopyFile\CopyFile.csproj -c Release -r win-x64 -- 阅读全文
posted @ 2025-07-26 08:00 超级无敌美少男战士 阅读(7) 评论(0) 推荐(0)

2025年7月14日 #

摘要: ConcurrentQueue和BlockingCollection的区别 区别 1. 阻塞行为(最核心区别) ConcurrentQueue<T>:无阻塞机制 它仅保证线程安全的队列操作,但不提供“阻塞”功能。 当队列为空时,调用Dequeue()会直接抛出InvalidOperationExce 阅读全文
posted @ 2025-07-14 08:00 超级无敌美少男战士 阅读(43) 评论(0) 推荐(0)

摘要: code2md final using System.Collections.Concurrent; using System.Diagnostics; using System.Text.RegularExpressions; // 发布命令 (不包含调试信息) // dotnet publish 阅读全文
posted @ 2025-07-14 08:00 超级无敌美少男战士 阅读(8) 评论(0) 推荐(0)

2025年7月13日 #

摘要: code back 边生成,边消费 using System.Collections.Concurrent; using System.Diagnostics; using System.Text.RegularExpressions; // 发布命令 (不包含调试信息) // dotnet pub 阅读全文
posted @ 2025-07-13 08:00 超级无敌美少男战士 阅读(9) 评论(0) 推荐(0)

2025年7月12日 #

摘要: code back up 多线程 并行 using System.Collections.Concurrent; using System.Diagnostics; using System.Text.RegularExpressions; class Program { private stati 阅读全文
posted @ 2025-07-12 08:00 超级无敌美少男战士 阅读(9) 评论(0) 推荐(0)

2025年7月10日 #

摘要: new code2md Code2md\Code2md.csproj <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net9.0</TargetFrame 阅读全文
posted @ 2025-07-10 08:00 超级无敌美少男战士 阅读(9) 评论(0) 推荐(0)

摘要: 多线程,Task,线程安全队列,ConcurrentQueue,ManualResetEventSlim,文件移动 Longforce.FileMove\FileMoveApp\FileMoveApp.csproj <Project Sdk="Microsoft.NET.Sdk"> <Propert 阅读全文
posted @ 2025-07-10 08:00 超级无敌美少男战士 阅读(15) 评论(0) 推荐(0)

2025年7月9日 #

摘要: wpf mvvm List WPFListView\ListApp\App.xaml <Application x:Class="ListApp.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns: 阅读全文
posted @ 2025-07-09 08:00 超级无敌美少男战士 阅读(8) 评论(0) 推荐(0)

摘要: 依赖注入, 参数配置, 默认参数,动态灵活的参数配置 通过委托配置实现灵活的服务参数管理 Action<SecsGemOption> configure = null var option = new SecsGemOption(); configure?.Invoke(option); using 阅读全文
posted @ 2025-07-09 08:00 超级无敌美少男战士 阅读(11) 评论(0) 推荐(0)

2025年7月5日 #

摘要: appsettings.json,配置变更,自动感知,Configure<T>(...) + IOptions<T>/IOptionsSnapshot<T>/IOptionsMonitor<T> Configure<T>(...) + IOptions<T>/IOptionsSnapshot<T>/ 阅读全文
posted @ 2025-07-05 08:00 超级无敌美少男战士 阅读(17) 评论(0) 推荐(0)

摘要: 配置注入的两种方法, Settings, appsettings.json,依赖注入 1. AddSingleton(configurationRoot.GetSection(FTPSettings.Key).Get<FTPSettings>()) 作用:直接将 FTPSettings 的实例注册为 阅读全文
posted @ 2025-07-05 08:00 超级无敌美少男战士 阅读(20) 评论(0) 推荐(0)

2025年7月4日 #

摘要: 动态创建对象,Activator.CreateInstance(),抽象类抽象方法,多态 DynamicCreateInstance\Program.cs // 静态创建 BaseHandler handler = new HelloHandler(); handler.Execute(); // 阅读全文
posted @ 2025-07-04 08:00 超级无敌美少男战士 阅读(13) 评论(0) 推荐(0)

2025年7月3日 #

摘要: 异步互斥锁 MutexLock 用锁和不用锁的对比 MutextLock\Program.cs using System; using System.Threading.Tasks; class Program { static AsyncExecutionLock _lock = new(); s 阅读全文
posted @ 2025-07-03 08:00 超级无敌美少男战士 阅读(17) 评论(0) 推荐(0)

摘要: C# 消息分发器模式,开闭原则,类型注解,反射注册,解耦,通信管理 基于消息分发器模式和反射注册,这种设计适合需要灵活扩展消息类型的场景(如通信协议、命令处理系统)。 1. 类关系图(核心设计) 使用类图展示各组件的继承、依赖和关联关系: classDiagram direction LR clas 阅读全文
posted @ 2025-07-03 08:00 超级无敌美少男战士 阅读(32) 评论(0) 推荐(0)

摘要: ASP.NET NLog ASP.NET.Core8\Program.cs using System.Text.Json.Serialization; using NLog.Web; var builder = WebApplication.CreateSlimBuilder(args); // � 阅读全文
posted @ 2025-07-03 08:00 超级无敌美少男战士 阅读(13) 评论(0) 推荐(0)

2025年7月2日 #

摘要: C# winform WPF 防止应用重复打开 using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Runtime.InteropServi 阅读全文
posted @ 2025-07-02 08:00 超级无敌美少男战士 阅读(42) 评论(0) 推荐(0)

2025年6月21日 #

摘要: dotnet cli publish 发布命令 1. 框架依赖型发布(Framework-Dependent Deployment) dotnet publish .\DemoProject.AutomationEdge\DemoProject.AutomationEdge.csproj -c Re 阅读全文
posted @ 2025-06-21 08:00 超级无敌美少男战士 阅读(183) 评论(0) 推荐(0)

2025年6月19日 #

摘要: PathHelper,获取当前执行程序的叔叔文件夹 System.Console.WriteLine(PathHelper.GetExeCurDir()); System.Console.WriteLine(PathHelper.GetExeGrandFatherDir()); System.Con 阅读全文
posted @ 2025-06-19 08:00 超级无敌美少男战士 阅读(6) 评论(0) 推荐(0)

2025年6月18日 #

摘要: SECS/GEM协议,U1到U8的数据类型,C# 在C#中,SECS/GEM协议里从U1到U8的数据类型对应关系如下: 数据类型映射表 SECS-II 类型 C# 类型 .NET 框架类型 位数 范围 U1 byte System.Byte 8位 0 到 255 U2 ushort System.U 阅读全文
posted @ 2025-06-18 08:00 超级无敌美少男战士 阅读(107) 评论(0) 推荐(0)

2025年6月15日 #

摘要: 消息服务器,生产者和消费者,消息队列 ChatServer\ChatConnection.cs using System.Runtime.CompilerServices; using System.Threading.Channels; public class ChatConnection : 阅读全文
posted @ 2025-06-15 08:00 超级无敌美少男战士 阅读(18) 评论(0) 推荐(0)

摘要: 消息队列,Channel,无界队列,有界队列 因为队列的最大长度是 3,所以从 B 到 E 的消息被掉丢 A 为什么没有丢掉,是因为刚写入的 A 消息被队列接收了,然后又写入了 B,C,D,E,F,G,H,然后 B 到 E 的消息被丢掉 D:\Code\ServiceModel.Grpc-maste 阅读全文
posted @ 2025-06-15 08:00 超级无敌美少男战士 阅读(18) 评论(0) 推荐(0)

摘要: CancellationTokenSource cts.Token的两个属性 1. CanBeCanceled 含义:表示该 CancellationToken 是否可以被取消。 初始状态:如果 CancellationToken 是由 CancellationTokenSource 创建的,则为 阅读全文
posted @ 2025-06-15 08:00 超级无敌美少男战士 阅读(57) 评论(0) 推荐(0)

摘要: 异步枚举,异步枚举接口,IAsyncEnumerable<T> IAsyncEnumerable<T> IAsyncEnumerable<T> 是.NET 中用于异步枚举的接口,允许你在异步操作中逐个处理元素,而不是一次性获取所有元素。 这种方式在处理大量数据或者需要长时间获取数据的场景中非常有用, 阅读全文
posted @ 2025-06-15 08:00 超级无敌美少男战士 阅读(18) 评论(0) 推荐(0)

2025年6月14日 #

摘要: 事件处理器 async void FunName() async ()=> {} class Program { static async Task Main() { var button = new Button(); button.Click += Button_Click; button.Si 阅读全文
posted @ 2025-06-14 08:00 超级无敌美少男战士 阅读(9) 评论(0) 推荐(0)

2025年6月13日 #

摘要: 观察者和被观察者,订阅者和发布者 using System; // 观察者:订阅天气变化的人 public class WeatherUser : IObserver<string> { private readonly string _name; public WeatherUser(string 阅读全文
posted @ 2025-06-13 08:00 超级无敌美少男战士 阅读(13) 评论(0) 推荐(0)

2025年5月17日 #

摘要: wpf项目中使用host background service App.xaml.cs using System; using System.Windows; using SecsDemo.Application.DependencyInjection; using SecsDemo.Automat 阅读全文
posted @ 2025-05-17 08:00 超级无敌美少男战士 阅读(72) 评论(0) 推荐(0)

2025年5月7日 #

摘要: asp.net部署遇到的问题 dotnet .net8 背景 使用.net8写了一个asp.net的程序,准备部署到windows server上面,然后去安装了对应版本的asp.net host binding: ASP.NET Core 8.0 Runtime (v8.0.15) - Windo 阅读全文
posted @ 2025-05-07 08:00 超级无敌美少男战士 阅读(66) 评论(0) 推荐(0)

摘要: 读取配置 配置节标识符 Program.cs的配置文件 using Demo.Application.Services; using Demo.Setting.SqlSugarSettings; using Demo.SqlSugarRepository.DependencyInjection; u 阅读全文
posted @ 2025-05-07 08:00 超级无敌美少男战士 阅读(11) 评论(0) 推荐(0)

摘要: asp.net 中如何获取配置文件 appsettings.json 指定配置文件 Program.cs var builder = WebApplication.CreateBuilder(args); // 获取默认的配置文件 // configurationManger Configurati 阅读全文
posted @ 2025-05-07 08:00 超级无敌美少男战士 阅读(29) 评论(0) 推荐(0)

2025年4月30日 #

摘要: LDAP 身份验证 windows账号 登录 using System.DirectoryServices; using System.Runtime.Versioning; internal class Program { private static void Main(string[] arg 阅读全文
posted @ 2025-04-30 08:00 超级无敌美少男战士 阅读(41) 评论(0) 推荐(0)

2025年4月29日 #

摘要: 安全证书到期 asp.net vue 此服务器无法证明它是 localhost;它的安全证书已于 5 天前到期。这可能是错误配置或攻击者截获连接而导致。计算机的时钟当前设置为 2025年4月28日星期一。显示的时间是否正确?如果不正确,则应更正系统时钟,然后刷新此页面。 背景 新建了一个asp.ne 阅读全文
posted @ 2025-04-29 08:00 超级无敌美少男战士 阅读(23) 评论(0) 推荐(0)

2025年4月24日 #

摘要: key event blazor keyinput github issue question I have the following code: <input bind=@this.Value onkeypress="@KeyPress" /> @functions { public strin 阅读全文
posted @ 2025-04-24 08:00 超级无敌美少男战士 阅读(21) 评论(0) 推荐(0)

2025年4月23日 #

摘要: golang 鸭子类型(Duck Typing) 1. 基础示例:接口的隐式实现 代码 package main import "fmt" // 定义接口 Duck,要求实现 Quack() 方法 type Duck interface { Quack() string // 鸭子必须会“嘎嘎”叫 阅读全文
posted @ 2025-04-23 08:00 超级无敌美少男战士 阅读(56) 评论(0) 推荐(0)

摘要: golang Go 闭包与循环变量陷阱及解决方案 示例 1:未处理的闭包变量陷阱 func main() { for i := 0; i < 3; i++ { defer func() { println(i) }() } } 现象 输出:3 3 3(三个 3) 原因 闭包捕获的是变量的引用,而非值 阅读全文
posted @ 2025-04-23 08:00 超级无敌美少男战士 阅读(74) 评论(0) 推荐(0)