bool IsDefine<T1, T2>(T2 t) where T1 : Enum where T2 : Enum { var value = Unsafe.As<T2, T1>(ref t); var array = Enum.GetValues(typeof(T1)); return (Array.BinarySearch(array, value) >= 0); } public static class EnumTool<T1, T2> where T1 : E…

2022年10月13日 0条评论 1647点热度 0人点赞 痴者工良 阅读全文

在项目使用分部类,如 Razor、Blazor、Wpf 等项目中,编译会生成 .g.cs 文件,但是因为出现了问题,不能编译成功,查看源代码,找不出错误,只能开始输出 .g.cs ,查看文件进行检查。 <PropertyGroup> <EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles> </PropertyGroup> https://stackoverflow.com/questions/7117…

2022年10月13日 0条评论 1749点热度 0人点赞 痴者工良 阅读全文

通过 DNS 方式,速度快,性能好。 dig ANY +short @resolver2.opendns.com myip.opendns.com dig ANY +short @resolver2.opendns.com myip.opendns.com dig ANY +short @ns1-1.akamaitech.net ANY whoami.akamai.net [......] 继续阅读

2022年10月12日 0条评论 1658点热度 0人点赞 痴者工良 阅读全文

// json => Dictionary static Dictionary<string, string> Read(string jsonData) { var reader = new Utf8JsonReader(Encoding.Default.GetBytes(jsonData), _jsonReaderOptions); var map = new Dictionary<string, string>(); BuildMap(r[......]继续阅读

2022年10月10日 0条评论 1986点热度 0人点赞 痴者工良 阅读全文

private static void RunPowershellScript(string scriptFile) { ProcessStartInfo ps = new ProcessStartInfo(@"powershell.exe",scriptFile) { RedirectStandardOutput = true }; //ps.CreateNoWindow = true; var proc = Process.Start(ps); proc.OutputDataReceived += (s, e)…

2022年10月9日 0条评论 2102点热度 0人点赞 痴者工良 阅读全文

using System.Resources; var assembly = typeof(Program).Assembly; ResourceManager resourceManager = new ResourceManager("update.Properties.Resources", assembly); var host = resourceManager.GetString("host"); 可以通过 typeof(Program).Assembly.GetManifestResourceName…

2022年10月8日 0条评论 1750点热度 0人点赞 痴者工良 阅读全文

项目发布参数: dotnet publish -c Release -r win-x64 -p:PublishProfile=FolderProfile --no-self-contained dotnet publish -c Release -r win-x64 -p:PublishProfile=FolderProfile -p:PublishReadyToRun=true -p:PublishTrimmed=true --self-contained false 开启裁剪: 关闭反射: <IlcDis…

2022年10月8日 0条评论 2668点热度 2人点赞 痴者工良 阅读全文

ASP.NET Core Response.Body 默认是 HttpResponseStream,其主要特征是只能追加写,不能读取也不能修改。 所以最根本方法是替换 HttpResponseStream。 随便设置一个中间件,或者将 HttpContext 拿出来,定义变量 context。 替换 Body: var responseOriginalBody = context.Response.Body; var memStream = new MemoryStream(); context.Response.…

2022年9月30日 0条评论 2830点热度 0人点赞 痴者工良 阅读全文

做单元测试的时候往往会使用 Moq 等库,对代码进行 Mock。 但是有些过程,我们希望除了 Mock 方法之外,能够在 Mock 方法中,判断传递的参数是否正确。 因为常规的 Mock ,是返回一个值。 var mock = new Mock<Test>(); mock.Setup<xxxx>(x => Get).... var obj = mock.Object; var result = obj.Get(); 在这个时候,是忽略参数和计算过程,返回一个值。 但是我们如果需要一个参…

2022年9月26日 0条评论 2898点热度 0人点赞 痴者工良 阅读全文

Windows.ApplicationModel.Package.Current.InstalledLocation.Path [......] 继续阅读

2022年9月23日 0条评论 2068点热度 0人点赞 痴者工良 阅读全文

首先映射是按照块来映射的,每个块内都有一个块内地址,记录每个字长的位置。 本文部分图片来源参考:https://blog.csdn.net/weixin_42649617/article/details/105092395 直接映射 特点是内存与 Cache 之间的映射位置是固定的,其中内存到 Cache 的映射位置计算是取余。 每个内存块的的大小跟 Cache 的块大小一致,内存块数量为 M, Cache 块数量为 N。 一个内存块的序号是 M(i),那么在 Cache 中的位置是 M(i)%N = N(i), …

2022年9月18日 0条评论 3428点热度 2人点赞 痴者工良 阅读全文

razor 页面字段属性命名规则 组件被调用 一个组件如果允许外部传递参数,需要使用 [Parameter] 修饰属性和大写命名。 <div class="card" style="width:22rem"> <div class="card-body"> <h3 class="card-title">@Title</h3> <p class="card-text">@ChildContent</p> </div> </div…

2022年9月15日 0条评论 1757点热度 0人点赞 痴者工良 阅读全文

MAUI Blazor 在 Windows 上使用的是 WebView2,MAUI Blazor 运行环境是跟程序没关系的,即使是系统设置了中文语言,程序集设置了中文,本地文化设置了中文,CultureInfo 设置了中文,统统都没有用。 你可以在程序启动后,按下 F12,然后执行 JavaScript 代码,检查浏览器的运行环境是何种语言: navigator.language 'en-US' 或者使用 API: // using Windows.Globalization var langs = Applica…

2022年9月15日 0条评论 3039点热度 2人点赞 痴者工良 阅读全文

修复系统缺少组件等问题: DISM.exe /Online /Cleanup-image /Scanhealth DISM.exe /Online /Cleanup-image /Checkhealth DISM.exe /Online /Cleanup-image /Restorehealth sfc /scannow [......] 继续阅读

2022年8月27日 0条评论 1948点热度 0人点赞 痴者工良 阅读全文

原作者:Joydip Kanjilal 原文地址:https://www.codemag.com/Article/2207031/Writing-High-Performance-Code-Using-SpanT-and-MemoryT-in-C 本文采用半译方式。 在本文中,将会介绍 C# 7.2 中引入的新类型:Span 和 Memory,文章深入研究 Span<T> 和 Memory<T> ,并演示如何在 C# 中使用它们。 本文所有代码用例在 .NET 6.0 下运行。 .NET 中…

2022年8月20日 0条评论 2108点热度 3人点赞 痴者工良 阅读全文

在 Mysql 中,批量插入自增列,是不能批量返回自增后的 Id,为了解决批量插入的问题,利用 Redis 的原子操作,实现无锁原子分配 自增 Id。 核心是在 Redis 中,保存表的最大 Id。 每次插入前,检查缓存 CacheId 跟数据库 MaxId 相比,如果 CacheId > MaxId,说明 CacheId 可以使用。这个阶段需要保证原子性。 插入前,需要向 Redis 申请获取一个范围的 Id,然后插入到数据库中。 定义接口: /// <summary> /// 自增列批量插入服…

2022年8月19日 0条评论 1952点热度 0人点赞 痴者工良 阅读全文

当集合为 null 时,代码如下: List<int>? _a = null; List<int>? _b = null; var a = _a?.Any() == false; var b = _a?.Any() == true; var c = _b?.Any() == false; var d = _b?.Any() == true; 当集合为 null 时,?.Any() == false 、?.Any() == tr[......] 继续阅读

2022年8月6日 0条评论 2162点热度 1人点赞 痴者工良 阅读全文

如下面代码: [ThreadStatic] private bool HasCreated = false; [ThreadStatic] private int Value = 0; void Main() { ThreadLocal<string> a = new ThreadLocal<string>(() => { if (HasCreated) return Value.ToString(); else { Value = Thread.CurrentThread.[....…

2022年8月4日 0条评论 2620点热度 1人点赞 痴者工良 阅读全文

Docker 部署: docker run -d \ --name=calibre-web \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/London \ -e DOCKER_MODS=linuxserver/mods:universal-calibre <code>#optional</code> \ -e OAUTHLIB_RELAX_TOKEN_SCOPE=1 <code>#optional</code> \ -p 8…

2022年7月28日 0条评论 3386点热度 3人点赞 痴者工良 阅读全文

执行 fdisk -l 会发现需要的磁盘。 可以看到这是一个空白盘。 开始执行命令将空白磁盘创建分区。 fdisk /dev/sdc 先输入 n。 ommand action <- 选择要创建的分区类型 e extended <- 扩展分区 p primary partition (1-4) <- 主分区 输入 p,再输入 1,剩下选项直接回车。 输入 w ,保存并退出。 格式化并设置磁盘系统: mkfs.ext4 /dev/sdc1 挂载 mount /dev/sdc1 /data/ 查看磁盘挂…

2022年7月28日 2条评论 2924点热度 1人点赞 痴者工良 阅读全文
167891027