探究——C# .net 代码混淆/加壳
2024/5/27 11:33:23

背景:保密。 过程:先查询一下常见的加壳工具:DotFuscat,官方自带,据说免费版混淆程度不高 ConfuserEx,只支持. Framewk 2.03.03.54.04.54.64.74.8,不支持. Ce Virbox Protect,很好很优秀,但是收费 React,最新6.9版收费,PJ版到4.9不支持. Ce Obfuscar,开源,可以用dot tool或项目构建的方式进行使用那就先用Obfuscar试试水(官方文档:https:docs.obfuscar.comgettingstart

visual studio智能提示出现慢的问题解决办法
2024/5/27 11:33:22

Visual Studio智能提示出现慢的问题解决办法如下:清理Visual Studio缓存。通过"文件"→"打开文件或项目"→"取消"→"是,清理所有项目"进行清理。 清理Visual Studio实例。通过"文件"→"关闭解决方案"进行清理。 重置用户数据。打开Visual Studio的开发人员命令提示符,输入devenv.exe resetuserdata命令并回车执行。清理完成后重启Visual Studio,问题一般会得到解决。 如果以上方法没有得到解决,可以尝试一下方法: 1. 可能安装v

在C#语言里对NULL的技术处理
2024/5/27 11:33:21

在 C# 中,null 是一个特殊存在,表示缺少值。Null 可以分配给引用类型和可为 null 的值类型,但不能分配给不可为空的值类型。在 C# 中处理 null 值是编写可靠且可靠的代码的一个重要方面。在本文中,我将讨论一些在 C# 中处理 null 值的最常用技术。 1 、NULL合并操作符() null合并操作符()是一个简写操作符,用于在左侧对象不为null时返回左侧值,在左侧对象为null时返回右侧值。当您在判断当前对象值是否null值并且赋值新对象需要简写时,此操作符非常有用。string

记一次 .NET某新能源检测系统 崩溃分析
2024/5/27 11:33:21

一:背景 1. 讲故事 前几天有位朋友微信上找到我,说他的程序会偶发性崩溃,一直找不到原因,让我帮忙看一下怎么回事,对于这种崩溃类的程序,最好的办法就是丢dump过来看一下便知,话不多说,上windbg说话。 二:WinDbg 分析 1. 到底是哪里的崩溃 对于一个崩溃类的dump,寻找崩溃点非常重要,常用的命令就是 !analyze v,输出如下:0:006 !analyze v CONTEXT: 6fbdee65 (.cxr 0x6fbdee65) eax=55d2ebff ebx=5e5f04c

循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(9) -- 实现系统动态菜单的配置和权限分配
2024/5/27 11:33:21

在WPF应用端开发,它的界面类似于Winfm端,因此我们也需要对系统的菜单进行动态配置,这样才能把系统的功能弹性发挥到极致,通过动态菜单的配置方式,我们可以很容易的为系统新增所需的功能,通过权限分配的方式,可以更有效的管理系统的菜单分配到不同的角色用户,本篇随笔介绍在WPF应用端中实现系统动态菜单的配置和权限分配。 1、系统菜单的管理 为了能够动态的加载应用系统的菜单,我们需要在数据库中存储对应的菜单信息,配置好后进行权限分配即可。 菜单的管理界面如下所示,左侧是一个菜单的树形列表,用来指引选择或者查询特

java和c#里的TOTP统一算法
2024/5/27 11:33:20

基础说明 本文根据 RFC4226 和 RFC6238 文档,详细的介绍 HOTP 和 TOTP 算法的原理和实现。 两步验证已经被广泛应用于各种互联网应用当中,用来提供安全性。对于如何使用两步验证,大家并不陌生,无非是开启两步验证,然后出现一个二维码,使用支持两步验证的移动应用比如 Google Authenticat 或者 LassPass Authenticat 扫一下二维码。这时候应用会出现一个6位数的一次性密码,首次需要输入验证从而完成开启过程。以后在登陆的时候,除了输入用户名和密码外,还需要把

.NET 一些常用的类型转换扩展
2024/5/27 11:33:20

记录下在开发中经常用到的类型转换#region 转换为string summary 将object转换为string,若转换失败,则返回""。不抛出异常。 summary param name="obj"param returnsreturnspublic static string ParseToString(this object obj){return Convert.ToString(obj) string.Empty}#endregion#region 转换为long summary 将o

ASP.NET Core使用Hangfire定时发布文章
2024/5/27 11:33:19

ASP. Ce使用Hangfire实现定时任务 前言 也是上了5天班,终于迎来了休息,抽空更新下博客,然后就是下周一公司会对我进行考核,希望考核能通过吧!!! 然后我想给博客添加一个定时发布文章的功能,其实这个功能对于我的博客是没什么作用的,什么时候发都没什么人看。但是咱还是要有这个功能。 实现思路我为文章表添加了一个Status状态属性,然后如果在上传文章的时候,添加了定时参数,那么就会进入定时任务的方法。首先无论是否选择定时发布,文章都会保存到数据库。Status状态默认为1,如果是定时发布文章的话,

WPF3D关于HelixToolkit-3D呈现的交互处理
2024/5/27 11:33:19

关于HelixToolkit这个3D呈现的交互处理推荐使用,因为功能比较强大 一个开源3D库,根据MIT许可证获得许可。MIT许可证非常宽松,允许在专有软件中使用。该库基于 .,目前专注于 WPF 平台。 HelixToolkit是. Framewk的一个开源3D图形库,它主要用于创建和操作3D图形1。 HelixToolkit包含许多实用的3D图形工具,例如3D视图、3D模型、3D场景、3D渲染、3D动画等,它们可以帮助开发者快速创建出高质量的3D图形应用程序1。 HelixToolkit的文档和教程可

循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(8) -- 使用Converter类实现内容的转义处理
2024/5/27 11:33:18

在我们WPF应用端的时候,和WInfm开发或者Vue前端开发一样,有时候也需要对内容进行转义处理,如把一些01数值转换为具体含义的文本信息,或者把一些布尔变量转换为是否等,都是常见的转换处理,本篇随笔介绍在WPF应用端对内容使用Converter类实现内容的转义处理的操作。 1、使用Converter实现内容转义或者强调颜色 一般在DataGrid中,我们往往都会根据需要对内容或者颜色进行一些转义处理,如下界面所示用户列表信息中,对性别和是否过期的内容进行颜色和内容的转义处理。在DataGrid的XAML

使用PasteSpider把你的代码升级到服务器的Docker/Podman上,K8S太庞大,PasteSpider极易上手!
2024/5/27 11:33:16

如果你的服务器的内存小于16GB,那么K8S就和你无缘了,但是你可以使用PasteSpider来实现发布你的项目到服务器上! PasteSpider是一个运维工具,使用编写的,部署于服务器的DockerPodman上,他可以帮助你把你的项目发布到服务器上,支持源码模式,支持发布模式,支持一键发布! 下面基于实际案例做个例子: 我们以贴代码官方(www.pastecode.cn)的代码为例,贴代码的服务端发布分为2个部分,api部分和web部分。域名解析到服务器,然后通过Nginx代理到静态文件(web端)

循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(7) -- 图标列表展示和选择处理
2024/5/27 11:33:15

我们在WPF应用端的界面中,使用lepocowpfui 来做主要的入口框架,这个项目它的菜单内置了不少图标,我们需要在动态菜单的配置中,使用它作为图标的展示处理,本篇随笔介绍如何基于图标枚举集合进行图标的展示和选择处理。并扩展到FontAwesomeWPF的处理进行展示和选择。 1、lepocowpfui 项目的图标库 lepocowpfui 项目的图标库来源于Fluent System Icons,项目地址是:https:github.commicrosoftfluentuisystemicons 这些

基于.Net 的 AvaloniUI 多媒体播放器方案汇总
2024/5/27 11:33:13

基于. 的 AvaloniUI 多媒体播放器方案汇总 摘要 随着国产化的推进,相信.的桌面端的小伙伴的可能已经有感受到了。 为了让.的桌面框架能够跨桌面平台,首选的就是AvalonaUI。 为了让AvaloniaUI能够跨多个平台播放视频,这里测试主要播放视频形式是使用RTSP。 所以,在这篇博文中,我打算对目前的AvaloniaUI框架上播放RTSP的方式,对现有的开源解决方案进行汇总。 如果文章有哪些问题,希望大佬们能不吝指出,或者共同交流下。 本篇文章将随时更新,欢迎有兴趣的小伙伴可以随手订阅或者转

使用NPOI修改Excel数据
2024/5/27 11:33:12

需求:格式为exp的文件,具有json结构,替换掉其中某些数据 解决方法:读取excel,用npoi读取指定内容,在exp中找到特定结构,然后替换 读取excel文件 读取其他格式的文件也是用此方法 public void OpenExcel() {Microsoft.Win32.OpenFileDialog openFileDialog = new Microsoft.Win32.OpenFileDialog()if (openFileDialog.ShowDialog() == true){Excel

基于ZXing.NET实现的二维码生成和识别客户端
2024/5/27 11:33:12

一、前言 ZXing.的一个可移植软件包,是一个开源的、多格式的1D2D条形码图像处理库,最初是用Java实现的。已经过大量优化和改进,它已经被手动移植。它与. 2.0、. 3.5、. 4.x、. 5.x、. 6.x、. 7.x、Windows RT类库和组件、UWP、. Stard 1.x和2.0x、. Ce App 3.x、Silverlight 4、Silverlight 5、Windows Phone 7.x和Windows Phone 8.x以及Xamarin.roid兼容。 二、项目环境和搭建

深入探讨 C# 和 .NET 中 async/await 的历史、背后的设计决策和实现细节
2024/5/27 11:33:12

前言 对asyncawait的支持已经存在了十多年。它的出现,改变了为 . 编写可伸缩代码的方式,你在不了解幕后的情况下也可以非常普遍地使用该功能。 从如下所示的同步方法开始(此方法是“同步的”,因为在整个操作完成并将控制权返回给调用方之前,调用方将无法执行任何其他操作): Synchronously copy all data from source to destination.public void CopyStreamToStream(Stream source Stream destinati

每年的免费SSL证书,你们都是要去操作续期?
2024/5/27 11:33:11

如标题所问,大家的免费证书估计都是去阿里云免费拿的,但有效期是一年,每次到期都需要再去申请并且去替换自己服务器的证书。 不知道大家有没有了解FreeSSL,我近期发展这个网站 https:freessl.cn,如果你们都是个人站点,对证书没什么特别要求,可以考虑用他们家生成的证书,并且能自动续费,完全不用操心。 首先在 freessl去申请一个证书名额,把你的域名登记到他们系统里,然后再根据指示进行 cname 或者 http proxy 的DCV配置,一单验证通过后就会给你部署脚本。 在执行部署脚本前先

最近我爱上了debian,感觉比centos上手容易
2024/5/27 11:33:11

首先我不去做两个系统之间的比较,因为我也不怎么懂核心区别,但近期部署系统和自己的开发项目时,发现debian系统安装框架还是非常方便,我就把自己整理的常规部署命令贴出来,希望对大家有用处,基本对. CE的开发者足够用了 安装 . ce 1、wget https:packages.microsoft.comconfigdebian11packagesmicrosoftprod.deb O packagesmicrosoftprod.deb 这是11的版本,如果大家的debian是10的,换成10 2、

使用try-convert将.NET Framework项目迁移到.NET Core
2024/5/27 11:33:11

工具地址:GitHub dottryconvert:帮助 . 开发人员将他们的项目移植到 . Ce! 这是一个简单的工具,有助于将. Framewk项目迁移到. Ce。 如何使用它 在此处将其作为全局工具安装:dot tool install g tryconvert 如果您已经安装了它,请确保更新:dot tool update g tryconvert 如果您再次使用该工具,请确保您使用的是最新版本:https:github.comdottryconvertreleases 如何使用该工具 唠叨

【算法】游戏中的学习,使用c#面向对象特性控制游戏角色移动
2024/5/27 11:33:09

最近,小悦的生活像是一首繁忙的交响曲,每天忙得团团转,虽然她的日程安排得满满当当,但她并未感到充实。相反,她很少有时间陪伴家人,这让她感到有些遗憾。在周五的午后,小悦的哥哥突然打来电话,他的声音里充满了焦虑。 “小悦,我有个事情想拜托你。”哥哥的声音传来。 小悦不禁有些疑惑,哥哥有什么事情需要她帮忙呢?她忍不住问:“哥哥,有什么需要我帮忙的吗?” 哥哥解释说:“我最近要出差一段时间,大概一个星期左右。而我的妻子目前正在照顾住院的父母,没有时间照顾小明。我想请你帮忙照顾小明一段时间。” 小悦愣住了,没想到哥

C#学习笔记--面向对象三大特征
2024/5/27 11:33:09

C#核心 面向对象封装 用程序来抽象现实世界,(万物皆对象)来编程实现功能。 三大特性:封装、继承、多态。 类与对象 声明位置:namespace中 样式:class 类名{} 命名:帕斯卡命名法(首字母大写) 实例化对象:根据类来新建一个对象。Person p=new Person() 成员变量声明在类语句块中 用来描述对象的特征 可以是任意变量类型 数量不做限制 是否赋值根据需求决定enum E_SexType {ManWoman } struct Position{}位置结构体 class Pet{

.netframework迁移到.netcore方法
2024/5/27 11:33:09

一 .framewk程序迁移到.ce5.0对于.framwk程序想要升级为.ce5.0的方法微软官方也给出了方法见 https:docs.microsoft.comenusdotdesktopwinfmsmigrationview=desktop5.0我这里总结记录一下. 1.首先要检查自己应用程序适不适合迁移.framewk框架和.ce框架有很大的不同首先得确保自己当前基于.framewk程序迁移到.ce上要改变哪些东西。下载迁移分析工具 Ptability Analyzer 这个可以到visual S

Wpf DataGrid设置列标题动态绑定实例
2024/5/27 11:33:05

在 WPF 中,可以使用 DataGrid 控件来显示和编辑表格式的数据。要设置 DataGrid 列标题的动态绑定,可以使用 DataGrid 的列定义和绑定功能。 以下是一个示例,展示如何使用动态绑定设置 DataGrid 的列标题:在 XAML 中定义 DataGrid 控件,并为其定义列:DataGrid AutoGenerateColumns="False" ItemsSource="{Binding PersonsView}"DataGrid.ColumnsDataGridTextColumn

【C#】【IO】【Threading】【实例】工作报表前的本地数据聚合操作
2024/5/27 11:33:05

工作记录——Rept 报表前的数据获取操作是高重复性的,今天差不多完成了脚本,下述是代码:1 See https:aka.msnewconsoletemplate f me infmation2 using System.IO3 using System.Threading4 5 string SN = @"C0230U25"6 string sourcefold = @"F:\整图图片"7 string flasefold = @"F:\报错"8 string rootPath = @""9 Rept

WPF 笔迹算法 从点集转笔迹轮廓
2024/5/27 11:33:05

本文将告诉大家一些笔迹算法,从用户输入的点集,即鼠标轨迹点或触摸轨迹点等,转换为一个可在界面绘制显示笔迹画面的基础数学算法。尽管本文标记的是 WPF 的笔迹算法,然而实际上本文更侧重基础数学计算,理论上可以适用于任何能够支持几何绘制的 UI 框架上,包括 UWP 或 WinUI 或 UNO 或 MAUI 或 Eto 等框架我将从简单到复杂的顺序描述笔迹算法,本文属于比较偏算法底层,阅读之前请先确保初中的数学知识还没忘了 本文适合于想要了解笔迹绘制更多细节的伙伴,以及期望自己设计出更好看的笔迹的伙伴,以及没

C#学习笔记--复杂数据类型、函数和结构体
2024/5/27 11:33:04

C#基础 复杂数据类型 特点:多个数据变量地一个集合体,可以自己命名 种类:枚举、数组和结构体枚举:整型常量的集合 数组:任意变量类型的顺序存储的数据集合 结构体:任意变量类型的数据组合成的数据块枚举: 枚举可以方便表示对象的各种状态,本质还是一种变量。 例如我们可以用枚举来表示怪物的种类、玩家的动作状态(静止、战斗、受伤......) 枚举的声明: enum E_MonsterType命名E_XXX {Nmal0Boss1 自动根据上一个数值顺延 } enum E_PlayerType { MainOt

【C#】【System.Linq】一些便捷的数据处理方法(Range、Select)
2024/5/27 11:32:57

因为用习惯了Python中一些便捷的方法,随即查询C#中有没有类似的。 一、Range()方法 在Python中,range(Start,End,Step)可以直接生成一个可迭代对象,便用于需要循环多次处理某些代码块: (注:Range方法中的End是开区间,range(1,10)实际的取值是(1 ~ 9))1 f item in range(1 10): 2 print(item end='') 3 # Output: 4 # 123456789 在C#中也有相同的方法可以使用: Syste

轻量通讯协议 --- MQTT
2024/5/27 11:32:57

介绍一、MQTT简介 MQTT(Message Queuing Telemetry Transpt) 是一种轻量级的消息传输协议,通常用于在物联网(IoT)和传感器网络中进行通信。它设计用于在低带宽、不稳定或高延迟的网络环境下传输数据,因此非常适用于连接设备之间的通信,尤其是在资源有限的环境中。 MQTT 的主要特点包括以下几点:轻量级:MQTT 协议本身非常简洁,消息头部占用较少的带宽,使其在低带宽网络中运行效率高。发布订阅模型:MQTT 使用发布订阅模型,其中客户端可以订阅特定的主题(Topic),并

【C#】【System.IO】关于拷贝文件夹以及(Directory和DirectoryInfo、File和FileInfo)的区别
2024/5/27 11:32:56

本次问题是想要拷贝文件夹,但是找了一圈发现只有File有Copy或者FileInfo的CopyTo,并没有Directy的拷贝操作方法。针对C#中拷贝文件夹的方法就是先生成一个目标文件夹(destinationFolder)再将(soursefolder)中的文件依次拷贝到目标文件夹中,C#并没有提供封装好的方法将文件夹中的文件及其子文件夹整个的拷贝过去。下述是CopyFold代码:1 using System.IO2 3 class Program4 {5 static void Main()6

C#学习笔记--逻辑语句(分支和循环)
2024/5/27 11:32:56

逻辑语句 条件分支语句 条件分支语句可以让顺序执行的代码逻辑产生分支,满足对应条件地执行对应代码逻辑。 IF语句 IF语句块 int a=5 if(a0&&a15)注意结尾无分号 {Console.WriteLine("a在0到15之间") } if……else结构 if( false ) {Console.WriteLine("满足if条件 做什么")if( true ){if (true){}else{}}else{if (true){}else{}} } else {Console.WriteLin