.net core中如何自定义静态文件目录、默认主页、和文件浏览目录?
在. Ce中,UseStaticFiles、UseDefaultFiles、UseDirectyBrowser和UseFileServer中间件用于处理静态文件和目录浏览。下面我将为你提供一个简单的例子,演示它们的用法。 首先,确保你的项目已经安装了Microsoft.AspCe.StaticFiles NuGet包,因为这是这些中间件的依赖。 dot add package Microsoft.AspCe.StaticFiles 然后,打开 Startup.cs 文件,并根据需要配置这些中间件: usi
浅谈WPF之DataGrid过滤,分组,排序
使用过Excel的用户都知道,Excel可以方便的对数据进行分组,过滤,排序等操作,而在WPF中,默认提供的DataGrid只有很简单的功能,那么如何才能让我们开发的DataGrid,也像Excel一样具备丰富的客户端操作呢?今天就以一个简单的小例子,简述如何在WPF中实现DataGrid的过滤,筛选,排序等功能。仅供学习分享使用,如有不足之处,还请指正。涉及知识点 在本示例中,涉及知识点如下所示:CollectionView, CollectionView 类为实现 IEnumerable 接口的数据源
称重驱动二次开发教程
通过二次开发可以扩展新的设备型号,以插件的方式快速集成到系统。下面几个步骤快速实现一个简单的电子秤驱动。 预备动作,先了解一下系统介绍,文章最下面有下载链接。 称重系统免费下载,支持耀华、顶尖等多款设备型号 使用插件式开发称重仪表驱动,RS232串口对接各类地磅秤数据实现ERP管理 1、新建一个控制台工程(. 4.6版本及以上)2、添加引用DDS.IOT.Weight.exe 文件在安装目录中获取3、新建一个测试电子秤类 继承DDS.IOT.Weight.WeightBase,并实现虚方法。利用后台任务实
聊一聊 C# 线程切换后上下文都去了哪里
一:背景 1. 讲故事 总会有一些朋友问一个问题,在 Windows 中线程做了上下文切换,请问被切的线程他的寄存器上下文都去了哪里?能不能给我挖出来?这个问题其实比较底层,如果对操作系统没有个体系层面的理解以及做过源码分析,其实很难说明白,这篇我们就从.高级调试的角度试着分析一下吧。 二:寄存器上下文去哪了 1. 用户线程的两态空间 用C#代码创建的线程在操作系统层面上来说属于 用户态线程,这种线程拥有两个线程栈,哈哈,是不是打破了一些朋友的三观。分别为 用户态栈 和 内核态栈。 为了方便讲解,写一段简
【c# winform】devexpress treeList右键菜单添加按钮
本文提供俩种不需要手动添加编辑控件方法。 方法一:创建新的右键菜单添加“执行选择”按钮,且抑制TreeList自带菜单结果展示: 代码: private void Fm1_Load(object sender EventArgs e) {CreateBarButtonItem() }private void CreateBarButtonItem() { 创建右键菜单ContextMenuStrip contextMenuStrip = new ContextMenuStrip() 添加 "执行选择" 菜
用C#也能做机器学习?
前言✨ 说到机器学习,大家可能都不陌生,但是用C#来做机器学习,可能很多人还第一次听说。其实在C#中基于ML.也是可以做机器学习的,这种方式比较适合.程序员在项目中集成机器学习模型,不太适合专门学习机器学习,本文我将基于ML. Model Builder(低代码、入门简单)构建一个猫狗识别实例,并在.应用中集成它。 效果✨ 效果如下所示:目录✨ML.简介ML. Model Builder简介数据集准备添加机器学习模型选择方案选择训练环境添加数据训练评估模型在.应用中使用模型总结ML.简介✨ ML. 是由
Lock、Monitor线程锁
Lock、Monit线程锁 官网使用 https:learn.microsoft.comzhcndotapisystem.threading.monitview=8.0 一. Lock 1.1介绍 Lock关键字实际上是一个语法糖,它将Monit对象进行封装,给object加上一个互斥锁,A进程进入此代码段时,会给object对象加上互斥锁,此时其他B进程进入此代码段时检查object对象是否有锁?如果有锁则继续等待A进程运行完该代码段并且解锁object对象之后,B进程才能够获取object对象为其加上
记一次 .NET 某药厂业务系统 CPU爆高分析
一:背景 1. 讲故事 前段时间有位朋友找到我,说他们的程序出现了CPU爆高,让我帮忙看下怎么回事?这种问题好的办法就是抓个dump丢给我,推荐的工具就是用 procdump 自动化抓捕。 二:Windbg 分析 1. CPU 真的爆高吗 还是老规矩,要想找到这个答案,可以使用 !tp 命令。0:044 !tp logStart: 1 logSize: 200 CPU utilization: 88 % Wker Thread: Total: 8 Running: 4 Idle: 4 MaxLimit:
EF Core助力信创国产数据库
前言 国产数据库作为国产化替代的重要环节,在我国信创产业政策的指引下实现加速发展,我们国产数据库已进入百花齐放的快速发展期,相信接触到政府类等项目的童鞋尤为了解,与此同时我们有一部分也在使用各种开源的M都早已支持主流国产数据库,我们也有一部分在使用官方EF Ce但没有对国产数据库的统一的管理和支持,去年我写过一篇如何使用EF Ce适配支持人大金仓,既然如此,利用我工作空余时间将其适配后开源出来,大家来共同添砖加瓦 人大金仓和华为高斯数据库介绍 人大金仓和华为高斯数据库底层都是基于PostgreSQL,关于
.NET中如何实现高精度定时器
.中有多少种定时器一文介绍过.中至少有6种定时器,但精度都不是特别高,一般在15ms~55ms之间。在一些特殊场景,可能需要高精度的定时器,这就需要我们自己实现了。本文将讨论高精度定时器实现的思路。 高精度定时器 一个定时器至少需要考虑三部分功能:计时、等待、触发模式。计时是进行时间检查,调整等待的时间;等待则是用来跳过指定的时间间隔。触发模式是指定时器每次Tick的时间固定还是每次定时任务时间间隔固定。比如定时器时间间隔10ms,定时任务耗时7ms,是每隔10ms触发一次定时任务,还是等定时任务执行完后
第十三单元 流程控制和函数
1. 选择结构If(...) Begin 语句块 End else if(...) Begin 语句块 End Else Begin 语句块 End 注意事项语法中begin..end相当于C#中的{} 执行语句只有一条时,begin..end可以省略 ()可以省略,但是如果条件内包含语句 ,()不能省略 数据库中使用=表示相等判断 2. Case 结构 用于条件是判断相等的时候才可以使用这种语法 case 字段when 条件1 then 结果when 条件2
通过实例详细讲解Quartz.NET的一些高级功能的应用,你用到了多少
Quartz. 是一个强大的开源作业调度库,提供了许多高级功能。以下是 Quartz. 的常用高级功能:Cron 表达式触发器: 使用 Cron 表达式定义灵活的调度规则,实现复杂的时间调度策略。 作业依赖性: 允许定义作业之间的依赖关系,确保它们按照特定的顺序执行。 作业执行中的数据传递: 在调度作业时,可以传递参数和数据,使得作业能够根据需要获取执行时的上下文信息。 全局作业监听器: 添加全局监听器,监听作业的执行生命周期事件,例如作业执行前、执行后等。 全局触发器监听器: 添加全局监听器,监听触发器
第十二单元 `T-SQL` 编程
create database step2_unit12 go use step2_unit12 go 部门表 CREATE TABLE [dbo].[Department]([Id] [int] PRIMARY KEY IDENTITY(11) NOT NULL[Name] [var](20) NULL ) 职位表 CREATE TABLE [dbo].[Job]([Id] [int] PRIMARY KEY IDENTITY(11) NOT NULL[Name] [var](20) NULL )
精准掌握.NET依赖注入:DI自动注册服务轻松搞定
概述:.依赖注入(DI)通过反射自动注册服务,示例展示了注册指定类、带特性类、项目下所有接口实现的类。简化配置,提高可维护性。 在.中,进行依赖注入(DI)的自动注册,可以通过反射机制和程序集扫描来实现。以下是详细的步骤以及相应的C#源代码示例,包括注册指定类、注册带有自定义特性的类、以及注册项目下所有带有接口实现的类(项目下的所有接口): 步骤1:创建接口和实现类 接口1 public interface IService1 {void PerfmService1() } 接口2 public int
第十一单元 事务与锁
create database step2_unit13 go use step2_unit13 go 创建数据表 CREATE TABLE account ( id INT PRIMARY KEY identity NAME VAR(10) balance decimal(102) ) 添加数据 INTO account (NAME balance) VALUES ('张三' 1000) ('李四' 1000) 1. 应用场景说明 什么是事务: 在实际的开发过程中,一个业务操作如:转账,往往是要
识别指定window窗口的文本
1. 简单需求 通过图文识别读取一个指定window窗口的文本。 获取窗口句柄,截图保存成bitmap 调用图文识别库. 测试结果是对中文下的识别不是特别好。 需要注意的是,tessdata要下载指定目录页下。 2. 引用包 a. 引用 tesseract4.1 b. Emgu.CV组件 3. 上代码 using System using System.Drawing using System.Drawing.Imaging using System.Runtime.InteropServices u
WebAPI部署到IIS
WebAPI部署到IIS1 开启IIS功能 控制面板程序程序和功能启用或关闭Windows功能,以下打勾:2 下载对应版本的dot Ce 本文为ASP . Ce6.0版本,需下载对应6.0版本的运行时,下载地址:https:dot.microsoft.comenusdownloaddot 。 选择托管捆绑包Hosting Bundle,如图所示:下载并安装。 3 发布WebAPI VS中,WebAPI项目,右键发布,如图:发布至文件夹,调整目标路径后发布。 4 部署至IIS 此电脑右键管理服务和应用程序I
.Net 8与硬件设备能碰撞出怎么样的火花(使用ImageSharp和Protobuf协议通过HidApi与设备通讯)
前言 本人最近在社区里说想做稚晖君的那个瀚文键盘来着,结果遇到两个老哥一个老哥送了我电路板,一个送了我焊接好元件的电路板,既然大家这么舍得,那我也就真的投入制作了这把客制化键盘,当然我为了省钱也是特意把外壳模型重新切割,用3D打印机打印了整个外壳,不得不说省了八九百的CNC费用。键盘介绍我就不说了,键盘主要特色是左边的拓展模块,有墨水屏和手感超好的旋钮,当然也支持自定义开发,能开发也是我写这篇文章的原因,毕竟是为了开发功能,效果图如下大家可以关注我的b站账号绿荫阿广,来学习交流一些有趣的东西。技术选型 在
第十单元 索引与视图
1. 常见的数据结构 1. 栈(stack) 特点:先进后出,后进先出 2. 队列(Queue) 特点:先进先出 3. 数组(Array) 查询速度快:通过地址值与索引可快速定位到数据删除效率低:删除数据后,要将每个数据前移添加效率极低:添加位置后,每个数据都后移,再添加数据。 4. 链表 链接中的数据都是游离存储的,每个元素节点包含元素值与下一个元素的地址查询速度慢,因为每次查询都要通过head 指针依次查询添加,删除效率相对较高,因为只需要将指针重新指向新添加进来的元素,其他元素的位
第四章 RPC 调用
通过以上案例我们发现,Http请求调用服务实例属实过于麻烦。其实对于请求同一个服务,很多步骤都是相同的,例如:服务名,地址,httpClient 创建步骤等。 RPC的出现,就是为了解决这一问题。 RPC: 即我们常说的远程过程调用,就是像调用本地方法一样调用远程方法,通信协议大多采用二进制方式。 常用的RPC框架有(标粗的是准备讲解的):gRPC gRPC是一个现代的开源高性能远程过程调用(RPC)框架,可以在任何环境中运行。它可以有效地连接数据中心内和跨数据中心的服务,支持负载均衡、跟踪、健康检查和身
c# 更改快捷方式文件图标
c# 更改快捷方式文件图标c# 更改快捷方式文件图标c# 更改快捷方式文件图标c# 更改快捷方式文件图标c# 更改快捷方式文件图标c# 更改快捷方式文件图标c# 更改快捷方式文件图标c# 更改快捷方式文件图标c# 更改快捷方式文件图标 summary 更改快捷方式文件图标 summary param name="initialSource"param param name="iconLocation"param public async static void ChangeLinkIcon(st
每个.NET开发都应掌握的C#网络编程知识点
上篇文章讲述了C#处理文件系统IO知识点,本文将介绍C#网络编程知识点。随着信息技术的不断发展,网络编程在.开发中变得愈发重要。无论是构建Web应用、实现实时通信,还是处理分布式系统,C#网络编程都是必备的技能。以下是.开发者在网络编程中应该掌握的关键知识点。 一、http请求知识点 在C#中进行HTTP请求是.开发中常见的任务,使用HttpClient类是一种常用的方式。下面将介绍HttpClient的相关知识点。 1、HttpClient类 HttpClient是用于发送HTTP请求和接收HTTP响应
第三章 分布式配置中心
1. 简介 为什么需要分布式配置中心 分布式配置中心是为了解决在分布式系统中进行配置管理的需求而引入的。在传统的单体应用中,通常使用配置文件集中管理系统的配置信息。然而,在分布式系统中,由于系统规模变大、节点众多,并且可能部署在不同的服务器上,传统的配置文件方式会面临一些挑战。 首先,配置文件的修改和发布需要手动操作,如果系统规模庞大则变得非常繁琐和容易出错。其次,配置文件不易实现动态更新,如果需要修改某项配置,需要重新部署整个应用。而对于分布式系统来说,这样的操作会带来不可忽视的停机时间和影响。 因此,
构建实时通信应用:使用.NET和SignalR轻松实现前沿技术
概述:学习.中使用SignalR实现实时通信功能。从安装库、创建Hub,到客户端基础功能,一步步构建实时聊天室。深入讲解分组功能,使您能够定向广播消息。简洁实用,助您轻松掌握实现创新Web应用的技能。 SignalR是一个强大的实时通信库,为.应用程序提供轻松的实时功能。它支持双向通信,让服务器能够主动向连接的客户端推送实时数据。SignalR适用于构建即时聊天、实时协作和实时更新等功能。无需复杂的轮询机制,SignalR利用WebSocket技术实现高效通信。通过简单易懂的API,使开发者能够快速集成实
WinForm实现管理员权限运行的三种方式
来源:https:mp.weixin.qq.comsydBWABy7kwOWxNCQu4qYMA 在visual studio开发winfm程序,生成msi安装包以后,代码运行似乎没有问题。但是,若是软件安装到了C盘,软件在执行某些操作,比如写文件、读文件等操作时,有可能会因为操作系统用户权限不足导致读写不成功。关键这时候软件还不报错,可能很难发现原因。 这个问题,作为普通用户,可以考虑鼠标右键软件选择“以管理员权限运行”,就可以临时解决这个问题了。但是这个办法怎么看都挺不合适,为难用户了。 查了一下
【.NET】控制台应用程序的各种交互玩法
老周是一个不喜欢做界面的码农,所以很多时候能用控制台交互就用控制台交互,既方便又占资源少。有大伙伴可能会说,控制台全靠打字,不好交互。那不一定的,像一些选项类的交互,可以用键盘按键(如方向键),可比用鼠标快得多。当然了,要是要触控的话,是不太好用,只能做UI了。 关于控制台交互,大伙伴们也许见得最多的是进度条,就是输出一行但末尾不加 \n,而是用 \r 回到行首,然后输出新的内容,这样就做出进度条了。不过这种方法永远只能修改最后一行文本。 于是,有人想出了第二种方案——把要输出的文本存起来(用二维数组,啥
浅谈WPF之装饰器实现控件锚点
使用过visio的都知道,在绘制流程图时,当选择或鼠标移动到控件时,都会在控件的四周出现锚点,以便于修改大小,移动位置,或连接线等,那此功能是如何实现的呢?在WPF开发中,想要在控件四周实现锚点,可以通过装饰器来实现,今天通过一个简单的小例子,简述如何在WPF开发中,应用装饰器,仅供学习分享使用,如有不足之处,还请指正。 什么是装饰器? 装饰器(Adner)是一种特殊类型的 FramewkElement,用于向用户提供视觉提示。 装饰器有很多用途,可用来向元素添加功能句柄,或者提供有关某个控件的状态
星索称重/生产管理软件 联机版V1.0
星索称重生产管理软件 联机版V1.0 一、特点 1.支持多用户、多组织管理,灵活控制用户权限。 2.支持地磅秤、智能电子秤、轨道秤等多款称重设备。 3.支持三联单热敏纸等多种打印模板。 二、系统截图 1.首页 2.批次管理 3.包装称重 4.供应商管理 5.产品管理 6.称重记录 7.产品分组 8.用户管理 9.部门管理 10.支持多种称重仪表型号 1.托利多 IND231IND236 2.顶尖OS2X 3.耀华XK319
C#_Win32_PInvoke源码生成器
介绍 一个源代码生成器,用于向 C#项目添加一组用户定义的 Win32 PInvoke 方法和相关的类型。 链接地址: https:github.commicrosoftCsWin32 还在手动添加平台调用的代码或者增加无用的程序集微软的官方解决方案来了! 特色快速将 PInvoke 方法和相关类型添加到您的 C#项目。 没有笨重的程序集按需使用 自动生成安全的类型 SafeHle 基于微软的官方链接生成 xml 文档和接口注释先决条件 The . 5 SDK Visual Studio 2019 Up
C# 提取PDF中指定文本、图片的坐标
获取PDF文件中文字或图片的坐标可以实现精确定位,这对于快速提取指定区域的元素,以及在PDF中添加注释、标记或自动盖章等操作非常有用。本文将详解如何使用国产PDF库通过C# 提取PDF中指定文本或图片的坐标位置(X Y轴)。 ✍ 用于操作PDF文件的第三方库为Spire.PDF f .。可以下载产品包后手动安装或者直接通用Nuget安装。 开始前我们首先了解该库关于PDF中坐标系的一些信息: Spire.PDF f .规定的坐标系原点位于PDF页面左上角,x 轴从原点开始水平向右延伸,y 轴从原点开始垂直