C#
C#
xxxxxue
快乐的小码农
展开
-
C# .Net 发布后,把dll全部放在一个文件夹中,让软件目录更整洁
之前找到一个修改 exe 中 DLL地址 的方法, 不太好使,虽然能正确启动, 但无法改变 exe 的工作目录,这就影响了.Net 中很多获取 exe 执行目录来拼接的地址 ( 相对路径 ),比如 wwwroot 和 代码中相对目录还有一些复制到目录的普通文件 等等,它们的地址都会指向原来 exe 的目录, 而不是自定义的 “lib” 目录,根本原因就是没有修改 exe 的工作目录这次来搞一个启动程序,把 .net 的所有东西都放在一个文件夹,在文件夹同级的目录制作一个 exe.原创 2024-02-22 21:48:56 · 853 阅读 · 0 评论 -
c# 释放所有嵌入资源, 到某个本地文件夹
【代码】c# 释放所有嵌入资源, 到某个本地文件夹。原创 2024-01-20 16:41:14 · 692 阅读 · 0 评论 -
EFCore 中 DateTimeOffset 报错 System.InvalidOperationException
System.InvalidOperationException:The LINQ expression 'DbSet().Where(t => t.CreatedTime >= 2022/10/3 10:20:30)' could not be translated.Either rewrite the query in a form that can be translated,or switch to client evaluation explicitly by inserting a cal原创 2023-04-25 13:53:45 · 872 阅读 · 0 评论 -
C# / Java 调用 Rust DLL 来删除文件夹 ( 包含大量软链接 和 无效链接)
又搜了一个普通的递归删除文件的代码(因为系统只能删除空文件夹,所以必须先删文件,再删文件夹)。(后来大概看了一下源码,发现处理了很多情况,也算是一个久经沙场的库了。既然 Rust 可以删除,那我直接编译成 DLL,让 C# 调用不就解决了 C# 的大问题。编译 Release,测试两遍,完美删除 ,速度也很稳定和 Rust 几乎相同,搜了下也是一堆写普通递归的代码,直接放弃,连新建项目都懒得搞了。也都报错了,看来这两个库内部实现也没有做到非常的完美。,更气人了,标准库连递归删除都没有,只能用第三方的库,原创 2022-09-19 11:26:25 · 586 阅读 · 0 评论 -
C#使用 WebView2 替代 Electron/Tauri 之 Web 核心
上一次试验了这次来一个 用 web 来给 webview2 提供数据虽然可以像 Wails 一样,底层使用 webview2 提供的传输字符串的接口去做 js 与 c# 的通讯。不过比较麻烦,要自己复刻一套 那样的算法和架构。如果直接用 web api 的方式提供数据,实现起来既简单又可以兼容web后端的生态, 真的是一举多得。...原创 2022-08-14 20:16:36 · 2619 阅读 · 0 评论 -
.Net C# 使用 IKVM 调用 Java 代码
IKVM 在 8.2.0 版本中新增加 kvmReference(在 MSBuild 中配置. 自动帮你编译jar到dll 和 自动引用dll )所以本文就用这个了.原创 2022-08-12 15:12:53 · 2152 阅读 · 6 评论 -
.Net C# 一个封装了windows api 的库
封装了所有 windows api 和 枚举 到 C#.原创 2022-08-08 14:09:33 · 405 阅读 · 0 评论 -
.Net C# 控制台 使用 Win32 API 创建一个窗口
windows api 改为了 Vanara ,这里就是全部的 控制台程序 的代码了.避免 重复造轮子和写模版代码。原创 2022-07-31 19:18:16 · 1170 阅读 · 0 评论 -
将 C# 与 React / Vue 等 放在一起启动
也可以使用其他的脚本写,比如nodejs等等,逻辑都是一样的.)接下来根据自己的需求发布C#Release项目。建议也加上跨域,写代码时就当做前后端分离去开发。开启Asp.NetCore的静态文件中间件。nextexport会自动输出HTML到。配置Next.js编译输出到dist目录。(这里使用Next.js作为示例)将前端项目编译生成HTML。.........原创 2022-07-21 22:21:00 · 989 阅读 · 0 评论 -
React SolidJS Svelte 使用 Yup 进行表单验证的最佳实践
相关网址Yup官网 (一个通用的验证框架, 可以接入很多的表单验证库)Felte官网 (同时支持 React Solid Svelte ,以后应该会支持更多的库)react-hook-form 官网定义验证规则 与 生成普通的ts类型更多规则 看官方文档,最大值、最小值、大小写、枚举、默认值、等等js 中 “undefined === null” 返回结果是 false . 所以是 两种类型 .想要支持null 类型 , 需要手动指定 nullable()import { Inf原创 2022-05-25 17:27:44 · 767 阅读 · 0 评论 -
C# .NET 给Web项目(MVC,RazorPage,Blazor等)添加一个系统托盘图标,替代Winform,WPF,Electron,QT,WebView2,Tauri 等桌面程序
效果图功能添加任务栏图标 ( 托盘图标 )添加右键菜单 (打开浏览器 / 控制台 /退出)双击打开控制台,启动一个web服务器 ( MVC , Razor , Blazor 等等 )web服务器启动成功,自动打开浏览器页面持续后台运行由于使用 Winform 实现, 所以只支持windows开发环境VS 2022.NET 6代码.csproj (项目的配置文件)! 非常重要 !// 移除// <TargetFramework>原创 2022-03-27 23:10:37 · 2076 阅读 · 0 评论 -
.NET, ASP.NET Core, C# 开启gzip和br压缩, 减少wasm,js,css等文件和字符串的传输体积
780 KB 的JS文件, br 压缩到 169 KB, gzip压缩到 208K效果非常棒浏览器请求头如果支持br, 默认会使用br压缩,也可以用 nginx 的proxy_pass代理 去做gzip,不过会遇到一些问题,nginx的 br好像还需要折腾一番,无法开箱即用.NET6 Program代码using Microsoft.AspNetCore.ResponseCompression;// ------------省略一些using------------var .原创 2022-02-18 21:37:38 · 2129 阅读 · 0 评论 -
C# Winform DataGridView 自适应
布局 中设置Anchor = Top, Bottom, Left, Right (设置上下左右 是否锁定 外边距)AutoSizeColumnsMode = AllCells (列 自适应宽度)AutoSizeRowsMode = AllCells (行 自适应高度)原创 2022-01-02 22:50:15 · 1879 阅读 · 0 评论 -
C# Xaml Mvvm Command 模版
code 1private Command _saveCommand;public Command SaveCommand => _saveCommand ?? (_saveCommand = new Command(() => { //.....方法内容 }));code 2private Command _saveCommand;public Command SaveCommand => _saveCommand ??原创 2022-01-01 16:42:14 · 359 阅读 · 0 评论 -
C# Newtonsoft.Json,System.Text.Json ,无需定义类,直接动态获取Json值
Newtonsoft.Jsonvar data = JsonConvert.DeserializeObject<JObject>(content);if (data != null){ // 读取 var id = Convert.ToInt32(data["id"]); // 如果为空,转int32结果为0 var name = data["name"]?.ToString(); var url = data["url"]?.原创 2021-12-06 20:17:47 · 2289 阅读 · 1 评论 -
vs2012,2013,2015,2017,2019,2022 常用的插件 与 开发中常用的工具
VS2022Codist (一个综合工具,挺牛b的,具体功能看github)内联显示诊断Visual-Studio-Translator (划词翻译,右键翻译,窗口翻译)Add New File (创建文件)FileEncoding (修改文件编码)无需关心using 命名空间双击tab自动插入默认参数 (非常的好用)内联提示突出显示引用Rider历史内容(可能一些不适合Vs2022)VS插件Visual Studio F12 进入到 反编译源代码原创 2020-12-05 22:40:52 · 49015 阅读 · 1 评论 -
C# 和 C++ 使用大漠插件, 源码在Github,希望对大家有所帮助
c# 使用大漠插件. 完成 类似 按键精灵的 功能. 方法 注释 正在慢慢的 完善中https://gitee.com/xxxxue/xDM/tree/dev原创 2018-09-04 16:14:31 · 3750 阅读 · 0 评论 -
C# 使用 WebView2 替代 Electron
C#想要实现Electron那样混合桌面程序可以用以下几个库.本文使用EdgeSharpNanUIPhotinoElectron.NETEdgeSharpChromely开始EdgeSharp 可以直接使用HTML,也可以配合Blazor、Razor 、SolidJs、Svelte、React、Vue、Angular等前端框架。直接调用系统中Edge浏览器所配套的 WebView2,无需像Electron那样打包整个浏览器内核,打包后的文件非常小。更多强大的功能可以查看官方示例,.原创 2021-11-27 23:07:03 · 2522 阅读 · 0 评论 -
C# 读写内存
【代码】C# 读写内存。原创 2021-11-25 20:22:30 · 2467 阅读 · 0 评论 -
Winform处理全局异常
using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using System.Windows.Forms;namespace Main{ internal static class Program { [STAThread] static void Main() { try原创 2021-11-23 15:34:15 · 671 阅读 · 0 评论 -
C# .Net使用yaml写appsettings配置文件
目录结构代码安装 https://github.com/chengxulvtu/Cxlt.Extensions.Configurationusing Microsoft.AspNetCore.Hosting;using Microsoft.Extensions.Configuration;using Microsoft.Extensions.Hosting;namespace Demo.Web.Entry{ public class Program {原创 2021-09-24 15:08:27 · 678 阅读 · 0 评论 -
C#使用HttpListener构建一个简易的Http服务器
调用using System;using System.Threading.Tasks;using Demo.Services;using Microsoft.Extensions.Hosting;namespace Demo{ internal static class Program { public async static Task Main(string[] args) { FrameWorkInfoServic原创 2021-09-14 15:55:47 · 710 阅读 · 0 评论 -
C# Quartz.Net的使用
using System;using System.Threading.Tasks;using Demo.Services;using Quartz;namespace Demo.QuartzJob{ public class MyJob : IJob { public Task Execute(IJobExecutionContext context) { return Task.Factory.StartNew(() .原创 2021-09-14 15:37:00 · 194 阅读 · 0 评论 -
C# EntityFrameworkCore自动修改CreateTime,UpdateTime
其他数据库Model继承BaseDbModelusing System;using System.ComponentModel.DataAnnotations;using Microsoft.EntityFrameworkCore;using Newtonsoft.Json;namespace Demo.Model.Base{ public class BaseDbModel { [Key] public int Id { get; set; } .原创 2021-09-14 15:30:49 · 842 阅读 · 1 评论 -
C# EntityFrameworkCore 分页
使用public static PagedList<FrameWorkInfo> GetFrameWorks(int pageIndex = 1, int pageSize = 20){ var db = new DefaultDbContext(); return db.FrameWorkInfos .Where(a => a.IsDeleted == false) .ToPagedList(pageIndex, pageSize);原创 2021-09-14 15:22:49 · 666 阅读 · 1 评论 -
C# .NetCore Console控制台项目添加Ctrl+C停止程序
Windows , Linux ,Docker 都有效NugetMicrosoft.Extensions.Hosting 5.0.0代码方案1using System;using Microsoft.Extensions.Hosting;namespace Demo{ internal static class Program { public static void Main(string[] args) {原创 2021-09-14 14:36:45 · 957 阅读 · 0 评论 -
C#InterlockedExchange锁
微软api文档原创 2021-08-20 18:50:45 · 629 阅读 · 0 评论 -
C#执行本机shell命令 | 远程服务器shell命令 | 上传文件到服务器 | 从服务器下载文件
NugetCliWrap---> 本机命令包装SSH.NET---> C#版本的 SSH, SFTP Furion.Tools.CommandLine---> 便捷的编写命令行工具执行本机命令例子// 命令工作的目录var buildFolderPath = @"E:\ReactProject\build\";// 执行压缩命令NativeCmdUtils.ExecCmdAndListenAsync( "E:\\Software\\7-Zip\原创 2021-08-17 21:12:18 · 1505 阅读 · 0 评论 -
.NetCore .Net 跨域
public void ConfigureServices(IServiceCollection services) { //..... services.AddCors(options => { options.AddPolicy("all", builder => { ...原创 2021-07-14 15:26:43 · 266 阅读 · 0 评论 -
AspNetCore SignalR : Json 实体循环引用问题解决方案
大概报错信息一般是 两个实体 互相引用造成的死循环, (你中有我,我中有你,程序会一直递归下去)设置 忽略引用, 即可解决System.Text.Json.JsonException: A possible object cycle was detected. This can either be due to a cycle or if the object depth is larger than the maximum allowed depth of 64. Consider usin原创 2020-12-27 22:54:47 · 1077 阅读 · 0 评论 -
C# : 调用js
C# 调用 js Nuget 引用 Microsoft.ClearScript原创 2020-12-13 21:56:16 · 852 阅读 · 0 评论 -
Docsify 侧边栏 : 自动生成sidebar与子目录sidebar
Docsify 侧边栏 : 自动生成sidebar与子目录sidebarhttps://github.com/xxxxue/Docsify-Build-Sidebar原创 2020-12-10 17:46:32 · 5095 阅读 · 3 评论 -
C# 图片添加水印
WaterMarkHelper.AddWaterMark(@"C:\Users\xxxue\Desktop\QQ图片20180704142029.jpg", @"C:\Users\xxxue\Desktop\123.jpg");using System;using System.Drawing;using System.Drawing.Drawing2D;using System.Dra...原创 2018-07-12 16:48:34 · 3840 阅读 · 0 评论 -
C# 下划线转驼峰
/// &lt;summary&gt; /// 转换 /// &lt;/summary&gt; /// &lt;param name="sender"&gt;&lt;/param&gt; /// &lt;param name="e"原创 2018-07-02 15:59:23 · 1877 阅读 · 0 评论 -
.Net类库 压缩文件 与 Ionic.Zip 批量压缩不同目录文件与解压 文件
using System;using System.IO;using System.IO.Compression;using System.Linq;using System.Text;using System.Web;using System.Web.Mvc;using Ionic.Zip;using ZipFile = Ionic.Zip.ZipFile;namespace...原创 2018-06-14 15:28:10 · 1423 阅读 · 0 评论 -
C# 获取网络文件 批量压缩成 文件流 并下载 压缩包
需要的DLL : ICSharpCode.SharpZipLib.dllJS部分 //下载所有文件的 压缩包 function DownAllFile() { //zip文件名 var zipName = &quot;我的zip文件&quot;; //url字符串 (示例数据) (注意!: 使用 '逗号' 分隔文件名和 url 地址,使用 ...原创 2018-06-14 15:22:57 · 2419 阅读 · 0 评论 -
c#调用phantomjs 将 网页 存为 PDF
一. 下载 phantomjs具体下载方式 不再详细说明了.二. 创建一个 rasterize.js 文件 (放在哪里都行, 我这里是放在了项目中) . 代码内容如下var page = require('webpage').create(), system = require('system'), address, output, size;if (system.ar...原创 2019-02-12 15:40:57 · 642 阅读 · 0 评论 -
C# 读写 ini 配置文件
介绍.ini 文件是Initialization File的缩写,即初始化文件, 是windows的系统配置文件所采用的存储格式,统管windows的各项配置,一般用户就用windows提供的各项图形化管理界面就可实现相同的配置了。.Net框架下的类库是基于托管代码的,而API函数是基于非托管代码的,运行库的控制下执行的代码称作托管代码。相反,在运行库之外运行的代码称作非托管代码。.NET 的公共类库 没有直接操作Ini文件的类,所以我们使用 System.Runtime.InteropSer原创 2019-04-07 14:35:49 · 1837 阅读 · 0 评论 -
正则_验证文本框输入的姓名是否规范(包含生僻字,不包含中文符号与其他字符)
1.可用于检查 文本框 输入的姓名 是否规范。 2.包含生僻字 3. 不包含 各种中文符号与其他符号(最后有详细的字符介绍)。最终正则(只能是中文、字母、英文符号 .`· ) ^(?!.*?[\u3000-\u303F\u4DC0-\u4DFF\u2800-\u28FF\u3200-\u32FF\u3300-\u33FF\u2700-\u27BF\u2600-\u26FF\uFE10-\...原创 2018-06-22 11:47:54 · 6884 阅读 · 0 评论 -
多个List 或 Array 进行 合并
1.调用var aaa = new List<string>() { "0" };var a1 = new List<string>() { "1" };var a2 = new List<string>() { "2" };var a3 = new List<string>() { "3" };var a4 = new List<...原创 2019-04-22 16:00:50 · 1264 阅读 · 0 评论