C# 工厂模式学习
2024/5/27 11:59:20

工厂模式(Facty Pattern)是一种创建型设计模式,它提供了一种创建对象的接口,而不是通过具体类来实例化对象。工厂模式可以将对象的创建过程封装起来,使代码更具有灵活性和可扩展性。 工厂模式有几种常见的实现方式:简单工厂模式(Simple Facty Pattern): 简单工厂模式通过一个工厂类来决定创建哪种具体类的实例。这个工厂类通常提供一个静态方法,根据传入的参数创建相应的对象。工厂方法模式(Facty Method Pattern): 工厂方法模式定义了一个创建对象的接口,但由子类决定要实例

记一次 .NET某企业数字化平台 崩溃分析
2024/5/27 11:59:19

一:背景 1. 讲故事 前些天群里有一个朋友说他们软件会偶发崩溃,想分析看看是怎么回事,所幸的是自己会抓dump文件,有了dump就比较好分析了,接下来我们开始吧。 二:WinDbg 分析 1. 程序为什么会崩溃 windbg 还是非常强大的,当你双击打开的时候会自动帮你定位过去展示崩溃时刻的寄存器和线程栈上下文,都省了 !analyze v 命令分析了,输出如下:Loading unloaded module list ............... This dump file has an exce

StackExchange.Redis跑起来,为什么这么溜?
2024/5/27 11:59:18

StackExchange.Redis 是一个高性能的 Redis 客户端库,主要用于 . 环境下与 Redis 服务器进行通信,大名鼎鼎的stackoverflow 网站就使用它。它使用异步编程模型,能够高效处理大量请求。支持 Redis 的绝大部分功能,包括发布订阅、事务、Lua 脚本等。由 StackExchange 团队维护,质量和更新频率有保障。这篇文章就来给大家分享下 StackExchange.Redis 为什么玩的这么溜。 我将通过分析 StackExchange.Redis 中的同步调用

.NET集成DeveloperSharp实现http网络请求&与其它工具的比较
2024/5/27 11:59:18

爆了,爆了,DeveloperSharp系列近期又被制造业ERP、民航飞行App、建筑BIM、电力掌上营业厅、等多家大型采用,站在巨人的肩膀上你能走的更远。 支持. Ce2.0及以上,支持. Framewk4.0及以上 http请求调用是开发中经常会用到的功能。在内,调用自有项目的Web Api等形式接口时会用到;在外,调用一些第三方功能接口时,也会用到,因为,这些第三方功能往往是通过http地址的形式提供的,比如:短信服务、在线翻译、地图服务、语音智能、等… http请求调用,又分为Post与G

C#的奇技淫巧:利用WinRM来远程操控其他服务器上的进程
2024/5/27 11:59:16

前言:有时候远程服务器的进程你想偷偷去围观一下有哪些,或者对一些比较调皮的进程进行封杀,或者对一些自己研发的服务进行远程手动启动或者重启等,又不想打开远程桌面,只想悄咪咪地执行,那也许下面的文章会对你有启发。 前提条件确保远程服务器(服务端)已启用WinRM。在远程服务器上运行以下命令可以启用和配置WinRM:winrm quickconfig确保执行远程命令的客户端和服务器之间的防火墙规则允许WinRM通信(默认使用端口5985和5986)。 本地客户端网络,需要设置为专用网络打开设置: 点击开始按

NET9 AspnetCore将整合OpenAPI的文档生成功能而无需三方库
2024/5/27 11:59:15

OpenAPI 规范是用于描述 HTTP API 的标准。该标准允许开发人员定义 API 的形状,这些 API 可以插入到客户端生成器、服务器生成器、测试工具、文档等中。尽管该标准具有普遍性和普遍性,但 ASP. Ce 在框架内默认不提供对 OpenAPI 的支持。 当前 ASP. Ce 不提供对 OpenAPI 的内置支持。不过内置支持了 ApiExpler 这是一个有用的抽象,它提供有关在应用程序中注册的路由的元数据。此元数据可通过 DI 容器访问,并由生态系统中的工具(如 Asp.Api.Versi

VSTO 撤回代码修改的值
2024/5/27 11:59:15

不废话,直接代码 private StackAction actionStack = new StackAction()private void SetCellValues() {var wksheet = Globals.ThisAddIn.Application.ActiveSheet as Excel.Wksheetvar range = wksheet.Range["A1"]var previousValue = range.Value2 保存当前状态以便恢复actionStack.Push(()

Master of Both —— Trie的应用
2024/5/27 11:59:14

Trie 树所有在老鼠岛上的老鼠都应该学习Trie树!——伟大的吱嘎鼠Trie树,就是所有Oier们喜闻乐见的字符串的超级优化的数据结构!已阅,狗屁不通。——吱嘎鼠字典树,顾名思义,是一颗很像字典的树,将相同前缀的字符串合并在一起,当出现不同时就分支,成为这样的树。在这样的树上,我们可以很快地完成关于前缀的问题。 Master of Both 题面 先看题面~ HuiBot教授是弦论和高级数据结构的大师,所以他提出了一个有趣的问题。给定一个仅由小写英文字母组成的 \(n\) 字符串序列,当按字典顺序比较字

微服务下认证授权框架的探讨
2024/5/27 11:59:12

前言 市面上关于认证授权的框架已经比较丰富了大都是关于单体应用的认证授权在分布式架构下使用比较多的方案是应用网关网关里集中认证将认证通过的请求再转发给代理的服务这种中心化的方式并不适用于微服务这里讨论另一种方案认证中心利用jwt去中心化的特性减轻认证中心的压力有理解错误的地方欢迎拍砖以免误人子弟有点干货但是不多需求背景 一个项目拆分为若干个微服务根据业务形态大致分为以下几种工程 1.纯前端应用 示例一个简单的H5活动页面商户仅仅需要登录就可以参与活动 2.前后端分离应用 示例如xxx后台xxxApi由一个

EDP .Net开发框架--组织架构
2024/5/27 11:59:11

职类 职类是将职务进行分类管理,并定义了职类标记和职级。职类标记会带入到该职类下的职务作为职务的标记,并为职务提供职级范围选择。“高管类”职类定义了其职级范围为“PM13至PM16”,那么该职类下的职务的职级就只能在这个范围内。 职务 定义和管理组织架构中的职务。职务必须属于某个职类。 职务的职级只能在职类定义的职级范围内选择。 职务有上下级关系。 部门可以选择一个或多个职务作为该部门的编制(部门职位)。 职务可以设置权限,用户可继承职务的权限。“董事长”,“校长”,“副校长”都是属于“校领导”职类,职级

使用Blazor构建CRUD项目
2024/5/27 11:59:09

在小公司中,往往没有一个前后端分离的大型团队,去各司其职的负责构建web应用程序。面对比较简单的需求,可能所谓团队只有一个人,既要开发前端又要开发后端。 如果能有一项技术,能够前后端通吃,并且具备非常高的开发效率,那就非常适合小公司的小型项目的小型甚至一人团队来使用了。 aspdot就是这样高效的后端开发框架,而有了blaz后,C#前端也可以通吃了,真正做到了一套框架,一种语言,前后端通吃。 本文使用aspdot + blaz,快速构建了一个CRUD项目。 1. 新建项目 新的Blaz Web App,可

C#.Net筑基-类型系统②常见类型
2024/5/27 11:59:08

01、结构体类型Struct 结构体 struct 是一种用户自定义的值类型,常用于定义一些简单(轻量)的数据结构。对于一些局部使用的数据结构,优先使用结构体,效率要高很多。可以有构造函数,也可以没有。因此初始化时可以new,也可以用默认default。但当给字段设置了初始值时,则必须有显示的构造函数。 结构体中可以定义字段、属性、方法,不能使用终结器。 结构体可继承接口,并实现接口,但不能继承其他类、结构体。 结构体是值类型,被分配在栈上面,因此在参数传递时为值传递。⁉️结构体始终都是分配在栈上吗?——

基于WPF+Sqlite开发抽奖软件【内附源码】
2024/5/27 11:59:06

在很早之前,就想过开发一款抽奖软件,却一直没有实际去做,最近经过一段时间的准备,终于开发出了一款基于WPF+Sqlite版的抽奖软件,包括客户端和管理端。本项目主要是为了熟悉WPF开发流程,仅供学习分享使用,如有不足之处,还请指正。 涉及知识点 抽奖软件是包括客户端和管理端,在抽奖软件开发过程中,主要用到了如下知识点:开发工具:Visual Studion 2022 开发框架:.6.0 + WPF MVVM框架:CommunityToolkit.Mvvm 8.2.2 数据库:Sqlite M框架:

上位机开发福利!快速掌握.NET中的Modbus通信
2024/5/27 11:59:06

安装nuget包 Wesky..OpenTools 1.0.8或以上版本。支持. framewk 4.6以上版本,以及所有. ce以及以上版本引用。 开发一个简单的Winfm界面,用来测试使用。如需该winfm的demo,可以在公众号【Dot Dancer】后台,回复 modbus 即可获取。 通信连接之前,可能存在多个客户端。可以写一个modbus客户端的静态数组存储。例如有五个客户端: 连接操作解析:假设有5个连接,此处都使用同一个服务端地址,实际情况请根据自己需要进行调整。连接后的客户端,存

.NET8 Identity Register
2024/5/27 11:59:06

分享给需要帮助的人:记一次 IdentityAPI 中注册的源码解读,为什么有这篇文 因为当我看到源码时,发现它的逻辑竟然是固定死的。我们并不是只能按照微软提供的源码去做。此文内容包含:设置用户账户为未验证状态、延迟用户创建、优缺点的说明、适用场景。在ASP. 8 Identity 中注册API的源码如下: routeGroup.MapPost("register" async TaskResultsOk ValidationProblem([FromBody] RegisterRequest regis

Dapper迁移SqlSugar问题汇总
2024/5/27 11:59:05

最近群里有个小伙伴把Dapper迁移SqlSugar几个不能解决的问题进行一个汇总,我正好写一篇文章来讲解一下 一、sql where in传参问题: FROM users where id IN @ids 答: SqlSugar中应该是var sql=" FROM users where id IN (@ids)"要有()和dapper有差异 var list=db.Ado.SqlQueryUsers(sqlnew {ids=new int[]{123}})  二、Dapper查询出来的Dyna

自定义分页控件
2024/5/27 11:59:05

自定义分页控件 tip: 该控件的样式用的是materialDesign库,需要下载Nuget包 CodeXamlUserControlx:Class="TestTool.CustomControls.PagingControl"xmlns="http:schemas.microsoft.comwinfx2006xamlpresentation"xmlns:x="http:schemas.microsoft.comwinfx2006xaml"xmlns:d="http:schemas.microsoft.

Avalonia中的线性渐变画刷LinearGradientBrush
2024/5/27 11:59:04

在WPF中使用Shape实现复杂线条动画后,尝试在Avalonia中也实现同样效果。尽管官方提供了从WPF到Avalonia的快速入门文档,但由于第一次使用Avalonia,体验过程中并不是很顺利,主要是卡在线性渐变画刷LinearGradientBrush的使用上。Avalonia中的线性渐变画刷与WPF中的略有差异,但相关文档并不多,故将此次经历记录下来并分享,希望能帮助大家少走弯路。由于Avalonia在持续更新,本文所述内容仅针对Avalonia 11.0.10版本。WPF中的LinearGrad

自定义可移动点二维坐标轴控件
2024/5/27 11:59:04

自定义可移动点二维坐标轴控件 目录路由参数 坐标轴控件定义 Demo路由参数 X_YResultCollection为当前X轴对应Y轴值存储字典 public class ResultCollectionChangedEventArgs(RoutedEvent routedEvent object source IDictionarydouble double resultCollection) : RoutedEventArgs(routedEvent source) {public IDictiona

在VB.NET项目中使用C#编写的代码
2024/5/27 11:59:02

前言 VB.,全名Visual Basic .,是Microsoft .框架的一部分,是一种面向对象的编程语言。它继承了Visual Basic的易用性,同时增加了对面向对象编程的支持。VB.提供了大量的内置函数,使得开发者可以更容易地处理字符串、数学计算、文件和目录访问等任务。它还提供了对Windows Fms和WPF的强大支持,使得开发Windows桌面应用程序变得更加简单。VB.的语法简洁明了,是初学者学习面向对象编程的好选择。 我个人刚开始接触.的时候,也是使用的VB.,但是随着自己对.的深入,我

EDP .Net开发框架--自动化日志
2024/5/27 11:59:02

平台下载地址:https:gitee.comalwaysinsistedp自动化日志不需要额外调用日志相关功能即可无感实现程序集方法调用的日志记录。创建业务逻辑处理类 public class StudentBLL : BusinessLogicBaseStudentBLL 继承基类BusinessLogicBase T 定义业务逻辑方法点击查看代码 [AutoLog(ActionEnum. "学生信息")] public ResultModelbool AddStudent(StudentModel

Biwen.Settings添加对IConfiguration&IOptions的集成支持
2024/5/27 11:59:01

Biwen.Settings 是一个简易的配置项管理模块主要的作用就是可以校验并持久化配置项比如将自己的配置存储到数据库中JSON文件中等 使用上也是很简单只需要在服务中注入配置 比如我们有一个GithubSetting的配置项我们只需要定义好对象然后注入到Service中即可:[Deion("Github配置")]public class GithubSetting : ValidationSettingBaseGithubSetting{[Deion("Github用户名")]public strin

.NET中特性+反射 实现数据校验
2024/5/27 11:59:01

.中特性+反射 实现数据校验 在.中,我们可以使用特性+反射来实现数据校验。特性是一种用于为程序中的代码添加元数据的机制。元数据是与程序中的代码相关联的数据,但不直接成为代码的一部分。通过特性,我们可以为类、方法、属性等添加额外的信息,这些信息可以在运行时通过反射获取和使用。 对反射不太熟悉的小伙伴可以去看我以前的文章 .中的反射 为了实现数据校验,我们可以定义一个自定义特性,并将其应用于需要校验的属性或参数上。然后,我们可以编写代码来检查这些特性,并根据特性的配置执行相应的校验逻辑。 示例代码 定义自定

C#如何用最简单方法调用Python?
2024/5/27 11:59:01

最近有群友咨询C#如何调用Python?小编尝试Python.过程中遭遇的版本兼容性和环境配置难题,小编决定寻找一个更为简单、稳定且对初学者友好的解决方案。小编搜索一番,除了Python.之外,还有其他途径能够帮助我们轻松地在C#项目调用Python脚本,那就是通过命令行调用,使用 System.Diagnostics.Process 类可以启动 Python 进程,并通过命令行参数传递脚本路径等信息。调用流程如下: 1、环境准备 在操作系统中安装好python,最好3.0以上版本;然后新建一个.8控制台

QShop商城-项目介绍
2024/5/27 11:59:00

QShop商城项目介绍QShop商城,是全新推出的一款轻量级、高性能、前后端分离的电商系统,支持微信小程序,前后端源码100%开源,完美支持二次开发,让您快速搭建个性化独立商城。 技术架构:.6、WebAPI、Swagger、NUnit、VUE、ElementUI、Ant Design Vue,专注轻量可持续稳定的高可用系统,可学习可商用。 技术特点前后端完全分离 (互不依赖 开发效率高) 采用.6(跨平台 WindowsLinux都可发布) UniAPP(开发跨平台应用的前端框架) ElementUI(

C#.Net筑基-类型系统①基础
2024/5/27 11:58:59

C#.的BCL提供了丰富的类型,最基础的是值类型、引用类型,而他们的共同(隐私)祖先是 System.Object(万物之源),所以任何类型都可以转换为Object。01、数据类型汇总 C#. 类型结构总结如下图,Object是万物之源。最常用的就是值类型、引用类型,指针是一个特殊的值类型,泛型必须指定确定的类型参数后才是一个正式的类型。1.1、值类型汇总⭐🔸值类型 Type 说明 示例备注byte System.Byte 8 位(1字节)无符号整数,0到255,sbyte System.SByte 8

EDP .Net开发框架--WebApi
2024/5/27 11:58:56

平台下载地址:https:gitee.comalwaysinsistedp按分类管理EDP所提供的WebApi接口,以供其他应用调用。WebApi接口不仅可以进行访问控制管理,同时还提供了版本管理,同一WebApi接口支持多个不同版本以满足接口调用方的多版本支持。 WebApi接口的数据是通过调用业务方法来获取的,而业务方法是基于业务对象的,因此WebApi获取的数据行、列同样是受权限管控的。 WebApi开发 public class StudentAPI : WebApiBase 继承基类WebApi

.NET 中的表达式树
2024/5/27 11:58:56

. 中的表达式树(Expression Trees) 表达式树是什么? 表达式树(Expression Trees)是.框架中的一个强大功能,它将代码表示为一个由表达式节点组成的树形结构。每个节点代表代码中的一个操作,例如方法调用、算术运算、逻辑运算等。表达式树允许开发者在运行时分析、修改和执行代码。 具体应用场景动态查询:在LINQ to Entities中,表达式树用于将LINQ查询转换为SQL语句,以便在数据库中执行。 动态编译:使用System.Linq.Expressions命名空间中的API,

Clear Code for Minimal API
2024/5/27 11:58:56

我在写MinimalAPI的时候,发现不能最清晰的看到每个API,原因就是:WebAPI中不断增长逻辑处理过程 于是我在想如何简化API至一行,在一点一点想办法中,发现了简化Dot Minimal API的方式。特此记录下来这个思路给需要帮助的人。我的灵感来源于 C# 11 功能 接口中的静态虚拟成员,通过静态虚拟成员清晰整个API。这是我思路的最终结果:在 Program.cs 中我们能通过一行代码,清晰的看到代码情况。 而无需指定平常不是很关心的处理过程和请求方式。 app.MapGroup("Co

Polly的基本用法
2024/5/27 11:58:55

Polly 是一个在 C# 中用于处理瞬态故障和提供弹性的库。它允许你以声明式的方式定义策略,如重试、熔断、超时、回退等,这些策略可以帮助你的代码在出现故障时保持稳健和可靠。 以下是如何在 C# 中使用 Polly 实现重试策略的基本步骤:首先,你需要在你的项目中安装 Polly 包。这可以通过 NuGet 包管理器来完成。在 Visual Studio 中,右键点击你的项目 选择 "Manage NuGet Packages..." 搜索 "Polly" 点击 "Install"。在你的代码中,引