ShadowSql.net之sql拼写神器
我正在开发的一个.net sql拼写工具(SqlBuilder),也可以算是ORM,命名为ShadowSql
本工具的作用就是帮码农拼写sql,对标开源项目SqlKata。
在项目里面直接拼写sql很容易出错,是件很Low的事情,所以我们需要ORM工具。
但是有些ORM很重,很担心造成性能问题,这就是开发本工具的出发点.
本工具很小、不依赖第三方包,不使用反射,应该 ...
记一个.NET AOT交叉编译时的坑
记一个.NET AOT交叉编译时的坑
背景:
使用.NET9开发的Avalonia项目需要部署到Linux-arm64
踩坑:
根据官方AOT交叉编译文档配置后执行打包
dotnet publish -r linux-arm64
提示error : The PrivateSdkAssemblies ItemGroup is required for _ComputeAssembliesToCompileToNative
找答案:
通过在Github上查找,找到了一个A ...
C# 调用 Win10/11 文件关联对话框
方法一:调用未公开接口 IOpenWithLauncher
Adobe Acrobat 应该是调用的未公开接口方法
[ComImport]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid("6A283FE2-ECFA-4599-91C4-E80957137B26")]
interface IOpenWithLauncher
{
[PreserveSig]
int Launch(IntPtr hWndParent,
[Marshal ...
抽离BlazorWebview中的.Net与Javascript的互操作库
做这个的目的是想使用 Blazor 中的 Javascript 与 C#中的互操作,但是又不需要加载 Blazor 整个类库,另外 BlazorWebView 组件没有支持直接通过 Http 协议加载 web 页面,调试的时候需要先把后端接口写好,然后前端打包,然后一起调试,感觉很麻烦,因此想能不能把互操作这部分功能单独抽离出来。后面研究了 asp.net core ...
【UWP】让 UWP 自己和自己通信
众所周知,UWP 一般是运行在沙盒里面的,当我们需要访问沙盒外资源的时候,就需要通过沙盒外的代理服务器来获取。一般情况下我们都是利用 WinRT API 通过 Runtime Broker 来和沙盒外互通,遇到要自定义的情况则是手动开一个 Win32 服务器来互通,但是有没有可能我们可以直接拿 UWP 本体当服务器呢?
UWP 本体实际上就是一个 ...
C# 窗口过程消息处理 WndProc
WinForm WndProc
在 WinForm 中一般采用重写 WndProc 的方法对窗口或控件接受到的指定消息进行处理
示例:禁止通过关闭按钮或其他发送 WM_CLOSE 消息的途径关闭窗口
protected override void WndProc(ref Message m)
{
const int WM_CLOSE = 0x0010;
if(m.Msg == WM_CLOSE)
...
C# 开发 Office 和 WPS COM 加载项
一、实现接口 IDTExtensibility2
这是实现 Office COM 加载项最基本的接口
添加 COM 引用 Microsoft Add-In Designer 即可
对应文件 Extensibility.dll 只包含 IDTExtensibility2 接口其中和用到的枚举 ext_ConnectMode、ext_DisconnectMode ...
C语言-堆内存申请和释放
大家在使用函数的时候避免不了使用堆内存,堆内存是一个匿名内存,它里边的内容是不能标识符进行访问的,只能使用指针进行访问,而且C语言的标准库函数给我们提供了两个堆内存的申请函数,但是这两个函数到底有什么区别呢?
malloc函数
相信大家对这个函数并不陌生,这个函数是用来像内存中的堆空间申请连续的存储单元,这 ...
C# 委托
原文链接:https://www.cnblogs.com/ysmc/p/18800819
C# 委托(Delegate)
介绍(摘至网络)
在 C# 中,委托(Delegate) 是一种类型安全的函数指针,它允许将方法作为参数传递给其他方法
C# 中的委托(Delegate)类似于 C 或 C++ 中函数的指针。委托(Delegate) 是存有对某个方法的引用的一种引用类型变量,引 ...
基于C#的学生社团管理系统(简单基础版)
前言
该系统为个人独立编写测试,也算自己的孩子吧,虽然基础功能简单但是也为了大家能有个可以借鉴,可以改写的模版使用,我就写个博客让大家参考,但是拒绝搬运售卖。
* 正式介绍
该系统基于C#开发,使用Visual Studio 2022版的开发环境,数据库则是SQL Server Management Studio用于社团信息的储存和用户密码的保存,有 ...
C# 管理多个工作簿的任务窗格
CustomTaskPanes.Add方法,它自动把任务窗格添加到当前的工作簿上去了。怎样才能将工作簿对象和任务窗格关联起来?
方法是:
ThisAddIn.cs中创建一个字典管理任务窗格
private Dictionary<string, CustomTaskPane> _createdPanes = new Dictionary<string, CustomTaskPane>();
/// <summary>
/// 按名称获取任务窗 ...
C#异步编程的好处
原文链接:https://www.cnblogs.com/ysmc/p/18798097
C# 异步编程的好处
异步编程是C#中非常重要的特性,它能让你的程序更高效、更流畅。我来用简单的方式解释它的好处:
1. 七窍玲珑心 - "边敲代码边和女朋友通话"
同步代码就像你敲代码时必须双手离开键盘才能接女朋友的电话
异步代码让你可以边敲代码边和女朋友 ...
深入理解C#笔记
C#1
//属性可以自动实现
public string Name{get; private set;}
public static List<roduct> GetSampleProducts()
{
return new List<roduct>//列表直接初始化
{
new Product {Name="JumpSugar",Price=3.4f},
}
}
委托
delegate类型可以看作只定义了一个方法的接口,委托实例看作实现该接口的一个对象
简单委托 ...
用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp智能体框架开发语音交互
前言
前段时间太忙了博客一直都没来得及更新,但是不代表我已经停止开发了,刚好最近把语音部分给调整了一下,所以就来分享一下具体的内容了。我想说一下,更新晚还是有好处的,社区已经有很多的小伙伴自己实现了一些语音对话功能的案例,比如小智也有.NET客户端了,还有就是一些树莓派对接实时语音api实现对话的功能,这些 ...
.NET 依赖注入深入详解
原为链接:https://www.cnblogs.com/ysmc/p/18796964
.NET 依赖注入深入详解
依赖注入(Dependency Injection, DI)是.NET Core .NET 5/6/7/8/9/10+中最重要的设计模式之一,下面我将从多个维度详细解释它的工作原理和使用方法。
一、核心概念解析
1. 什么是依赖?
当一个类A需要类B才能正常工作时,我们就说类A"依赖"于类B。 ...
.net core cookie授权给非服务器域名的网站时可能无法正常删除的解决办法
背景介绍:.net core框架,API服务器域名是a.com, 服务器需要通过cookie授权给网站b.com域名并设置了授权域名为a.com。 当你想退出时,在网站b.com使用js清理了本域名下的所有cookie后,刷新浏览器cookie列表也确实看到本域名下没有cookie了。 这时再使用另一个账号登录后会发现还是原用户的登录信息。
& ...
.net core项目docker部署
此为手动打包更新版
发布.net core程序,然后放到linux目录:/data/app/docker_name
一、打包到容器
1、安装docker
2、编写Dockerfile (放到目录:/data/app/docker_name)
1 #See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for ...
docker常用命令
docker的安装很多,就不说了
docker常用命令:
注:以下命令中,凡涉及到容器id的,都可以用容器id前三位,或者容器name
重启Docker服务:systemctl restart docker / service docker restart关闭Docker服务:docker service docker stop / docker systemctl stop docker
查看Docker服务状态:systemctl status docker停止 ...
Longbow.Tasks 实战—任务持久化
原文地址 https://www.cnblogs.com/ysmc/p/18795934
之前写过一个文章,是介绍Longbow.Tasks这个定时任务调度库的,然后不少小伙伴问过我,怎么东西怎么用,也怪我,在那篇文章结尾我讲过要出实战的,后来抛之脑后了,实在惭愧。
简单讲下这个库的情况,Longbow.Tasks 于Gitee 上开源,这个是开源地址:https: ...
业务系统基础框架-Winform版-权限
权限以树行结构呈现
可对权限进行添加,编辑,删除操作,也可以查看拥有此权限的账号
“启用验证”为true时这个权限是开始验证的,否则就不开启权限验证,
“启用验证”用于中途某个按钮不验证权限了,就把这个权限不开启验证就可以了,不然就得去把所有人都分配上这个权限
编辑权限信息
查看拥有某个权限的账号
权限码 ...