刷新
C#使用MiniExcel导入导出数据到Excel/CSV文件

博主头像 MiniExcel简介 简单、高效避免OOM的.NET处理Excel查、写、填充数据工具。 目前主流框架大多需要将数据全载入到内存方便操作,但这会导致内存消耗问题,MiniExcel 尝试以 Stream 角度写底层算法逻辑,能让原本1000多MB占用降低到几MB,避免内存不够情况。 特点: 低内存 ...

WPF魔法:轻松实现依赖注入与控制反转提升代码优雅性与可维护性

博主头像 概述:在WPF中实现依赖注入和控制反转,通过定义接口、实现类,配置容器,实现组件解耦、提高可维护性。 什么是依赖注入和控制反转? 依赖注入(Dependency Injection,DI): 是一种设计模式,旨在减少组件之间的耦合度。通过依赖注入,对象不再自行创建或查找依赖对象,而是通过外部注入的方 ...

C# - 将HTML网页、HTML字符串转换为PDF

博主头像 将HTML转换为PDF可实现格式保留、可靠打印、文档归档等多种用途,满足不同领域和情境下的需求。本文将通过以下两个示例,演示如何使用第三方库Spire.PDF for .NET和QT插件在C# 中将Html 网页(URL)或HTML字符串转为PDF文件。 HTML转PDF所需工具: 1. Spire ...

TopShelf创建服务

TopShelf创建Windows服务 安装NuGet包TopShelf 如图1-1所示,先安装TopShelf的NuGet包; 图1-1 创建服务类 如图1-2所示,创建一个ServiceManager服务类,并创建了两个方法,分别为Start和Stop方法,分别在服务启动和停止时调用; 图2-1 ...

C#邮件发送

C#基于SMTP的邮件发送 准备工作 注册邮箱 首先我们需要注册一个作为发送邮件的邮箱,这一步可以直接进入网易邮箱官网进行注册, 注册地址:https://mail.163.com/ 这里我们可以选择【快速注册】和【普通注册】,如图1-1所示,这里我选择的普通注册; 图1-1 登录邮箱 注册完成之后 ...

基于Basic auth 的一个C# 示例

博主头像 最近在做公司的一个项目时,客户需要我们定时获取他们矩阵系统的数据。在与客户进行对接时,提到他们的接口使用的目前不常用的BASIC 认证。天呢,它好不安全,容易被不法人监听,咋还在使用呀。但是没办法呀,谁让客户的系统就是这样的呢。因为现在开发中绝大多数使用的是基于Bearer 认证的。 1、研究 1. ...

C# 继承、多态性、抽象和接口详解:从入门到精通

博主头像 C# 继承 在 C# 中,可以将字段和方法从一个类继承到另一个类。我们将“继承概念”分为两类: 派生类(子类) - 从另一个类继承的类 基类(父类) - 被继承的类 要从一个类继承,使用 : 符号。 在以下示例中,Car 类(子类)继承了 Vehicle 类(父类)的字段和方法: 示例 class ...

OpenCvSharp打造智能考勤系统,实现高效人脸录入和精准考勤识别

博主头像 概述:该考勤系统基于OpenCV和OpenCvSharp实现,包含员工人脸录入和上下班考勤人脸识别。员工人脸特征通过ORB方法提取并存储,考勤时通过相似度计算识别员工。系统灵活、可扩展,提高考勤效率,确保准确性。 实现基于OpenCV和OpenCvSharp的考勤系统,包括员工人脸录入和上下班考勤人 ...

记一次 .NET某工控自动化系统 崩溃分析

博主头像 一:背景 1. 讲故事 前些天微信上有位朋友找到我,说他的程序偶发崩溃,分析了个把星期也没找到问题,耗费了不少人力物力,让我能不能帮他看一下,给我申请了经费,哈哈,遇到这样的朋友就是爽快,刚好周二晚上给调试训练营的朋友分享 GC标记阶段 相关知识,而这个dump所展示的问题是对这块知识的一个很好的巩 ...

被Null条件运算符摆了一道

博主头像 C#6.0引入了Null条件运算符: obj?.Invoke(); 等价于 if(obj != null) obj.Invoke(); 即遇到null时短路。 于是,我不假思索地写下了这样的代码:① await obj?.InvokeAsync(); 遇到null时短路嘛,我以为是等价于这样:② i ...

物联网浏览器(IoTBrowser)-顶尖OS2电子秤协议实现

博主头像 本教程基于 物联网浏览器(IoTBrowser)-Web串口自定义开发 ,详细的过程可以翻看之前的文章。 本篇以实现顶尖OS2系列电子秤协议对接,并集成到IoTBrowser平台。由于没有找到OS2协议的官方文档,用串口助手抓包分析了一下,简单封装了一下实现代码有点潦草。 所有的串口或者需要实时数据 ...

C# 面向对象编程解析:优势、类和对象、类成员详解

博主头像 C# - 什么是面向对象编程? OOP代表面向对象编程。 过程式编程涉及编写执行数据操作的过程或方法,而面向对象编程涉及创建包含数据和方法的对象。 面向对象编程相对于过程式编程具有几个优势: OOP执行速度更快,更容易执行 OOP为程序提供了清晰的结构 OOP有助于保持C#代码DRY("不要重复自己 ...

C# AsyncLocal 是如何实现 Thread 间传值

博主头像 一:背景 1. 讲故事 这个问题的由来是在.NET高级调试训练营第十期分享ThreadStatic底层玩法的时候,有朋友提出了AsyncLocal是如何实现的,虽然做了口头上的表述,但总还是会不具体,所以觉得有必要用文字+图表的方式来系统的说一下这个问题。 二:AsyncLocal 线程间传值 1. ...

<1···456···28>