C#
LongtengGensSupreme
没有庸俗的企业,只有不停的战场。
展开
-
C# Winform 已知窗体句柄,如何遍历出所有控件句柄
c# windform 已知窗体句柄,如何遍历出所有控件句柄。原创 2024-05-31 09:45:41 · 576 阅读 · 0 评论 -
C#调用C++动态库接口函数和回调函数方法
这篇文章主要介绍了C#调用C++动态库接口函数和回调函数方法,通过C++端编写接口展开内容,文章介绍详细具有一定的参考价值,需要的小伙伴可以参考一下当前C已经写好了一个动态库,完成了产品开发需求,C#需要调用C编写的动态库DLL接口,开发出完整的软件,DLL动态库里包含了普通接口函数,回调函数。win10 64位 、VS2017。原创 2023-11-16 14:38:41 · 1493 阅读 · 0 评论 -
已提交到GitLab中的项目如何添加.gitignore文件
gitignore文件添加很简单,一种方式是在项目的根目录下面新建.gitignore文件并添加相应的过滤规则即可,另一种是在vs2022中自动生成,Add. 所有文件,输入以下命令,再次将项目中所有文件添加到本地仓库缓存中。commit提交备注,这次commit是为了说明添加ignore文件的。首先为避免冲突先同步下远程仓库。清除本地项目目录下的缓存。原创 2022-09-07 14:47:13 · 561 阅读 · 0 评论 -
利用OpenCV的.Net下的EmguCV白平衡技术进行图像修复
利用OpenCV的.Net下的EmguCV白平衡技术进行图像修复原创 2022-01-14 10:50:05 · 270 阅读 · 0 评论 -
EntityFrameworkCore-EF Core加密存储数据
针对某些数据字段要保存敏感数据的情况,比如银行卡号,我们需要使用一种机制保证存储到数据库的数据是加密的,避免数据泄露风险,但是又能够正常读取出来显示。下面我们用MySql演示如何操作。创建一个ConsoleApp1,然后引用下列NuGet包:EntityFrameworkCore.DataEncryption Pomelo.EntityFrameworkCore.MySql假设数据表User已创建好,包含3个字段:Id 主键 Name 姓名 BankCard 银行账户创建User类原创 2021-08-06 10:37:07 · 804 阅读 · 0 评论 -
数据上下文dbcontext添加数据与Database数据库的分库分表,表映射,切换表
数据上下文dbcontext添加数据与Database数据库的分库分表,表映射,切换表,使用到了IModelCacheKeyFactory代码如下:using Microsoft.EntityFrameworkCore;using System;using System.Collections;using System.Collections.Concurrent;using System.Collections.Generic;using System.Linq;using Syst原创 2021-08-04 12:18:02 · 935 阅读 · 0 评论 -
C#串口通讯+BigEndian+Little-Endian(大端和小端方案)
C#串口通讯#region 串口 /// <summary> /// 2 3 4G DTU短信收发说明 /// </summary> public static void TestDTU4G() { var PortNames = SerialPort.GetPortNames(); foreach (var item in PortNames)原创 2021-05-10 17:09:52 · 613 阅读 · 1 评论 -
VS2019 创建C++动态库dll----C#调用
1、新建空白解决方案LJTest.sln2、添加动态链接库(DLL),命名TestDLL3、在头文件pch.h中添加需要导出的方法// pch.h: 这是预编译标头文件。// 下方列出的文件仅编译一次,提高了将来生成的生成性能。// 这还将影响 IntelliSense 性能,包括代码完成和许多代码浏览功能。// 但是,如果此处列出的文件中的任何一个在生成之间有更新,它们全部都将被重新编译。// 请勿在此处添加要频繁更新的文件,这将使得性能优势无效。#ifndef PCH.原创 2021-01-13 14:31:15 · 1046 阅读 · 0 评论 -
AOP面向切面的编程使用Interceptor内置的容器进行属性注入
AOP面向切面的编程使用Interceptor内置的容器进行属性注入1. NuGet程序包管理添加Castle Core,主要用于拦截器的使用,Startup ConfigureServices中添加如下内容public void ConfigureServices(IServiceCollection services){#region Controller控制器中的属性注入//把控制器作为服务注册,然后使用它内置的ioc来替换原来的控制器的创建器,这样就可以使用IOC来依赖注入和控制反转原创 2021-01-12 14:42:25 · 276 阅读 · 0 评论 -
使用IOC内置的容器进行属性注入
使用IOC内置的容器进行属性注入,新建Asp Net Core Web项目,添加以下内容1. 自定义特性,标记需要控制器Controoler中依赖注入的属性标记和对应服务接口using System;namespace WebAppTest.CustomAttrributes{/// <summary>/// 属性的特性标记,主要用于标记属性/// </summary>[AttributeUsage(AttributeTargets.Property)]p.原创 2021-01-12 14:30:13 · 290 阅读 · 1 评论 -
消除eliminate remove If-Else
测试消除If-Else代码如下:#region 消除eliminate remove If-Else public static void TestRemoveIfElse() { Console.WriteLine($"TestRemoveIfElse"); TestIfElse testIfElse = new TestIfElse(); TestIfElse.TestOrder order =原创 2020-12-18 14:41:50 · 146 阅读 · 0 评论 -
测试TestTcpSocket
测试TestTcp请求----处理Socket,代码如下:#region 测试TestTcp测试Socket /// <summary> /// 测试TestTcp /// </summary> public static void TestTcpSocket() { var threadStart = new Thread(new ThreadStart(StartTes原创 2020-12-17 16:57:34 · 221 阅读 · 0 评论 -
测试TestTcp
测试TestTcp请求----处理Socket,代码如下:#region 测试TestTcp /// <summary> /// 测试TestTcp /// </summary> public static async void TestTcp() { var threadStart = new Thread(new ThreadStart(StartTestTcp))原创 2020-12-17 16:36:13 · 146 阅读 · 0 评论 -
测试Socket监听请求----处理Socket
测试Socket监听请求----处理Socket,代码如下:#region 测试Socket /// <summary> /// 测试Socket /// </summary> public static void TestSocket() { var threadStart = new Thread(new ThreadStart(StartSocket))原创 2020-12-17 16:13:31 · 308 阅读 · 1 评论 -
测试HttpListener监听请求----处理WebSocketRequest
测试HttpListener监听请求,代码如下:#region 测试HttpListenerWebSocket /// <summary> /// 测试HttpListener /// </summary> public static async void TestHttpListenerWebSocket() { var threadStart = new Thread(原创 2020-12-17 15:40:27 · 1074 阅读 · 0 评论 -
测试HttpListener监听请求
测试HttpListener监听请求,代码如下:#region 测试HttpListener /// <summary> /// 测试HttpListener /// </summary> public static async void TestHttpListener() { var threadStart = new Thread(new Thr原创 2020-12-17 11:14:06 · 211 阅读 · 0 评论 -
EntityFramework Core 5.0 VS SQLBulkCopy
EntityFramework Core 5.0 VS SQLBulkCopyEF Core 5.0伴随着.NET 5.0发布已有一段时日,本节我们来预估当大批量新增数据时,大概是多少区间我们应该考虑SQLBulkCopy而不是EF CoreSQLBulkCopy早出现于.NET Framework 2.0,将数据批量写入利用此类毫无疑问最佳,虽其来源任意,但此类仅适用于SQL Server,每个关系数据库都有其批量处理驱动,这里我们仅仅只讨论SQL Server性能差异预估批量数据大小.原创 2020-12-08 12:34:45 · 283 阅读 · 0 评论 -
动态拼接Lambda表达式-表达式目录树动态构建及修改-----表达式树的访问过程,并转化成sql语句
代码如下 #region 表达式树的访问过程,并转化成sql语句 /// <summary> /// 访问 表达式树 Expression<Func<MyClass, bool>> expressionFunc = x => x.Age > 5 && x.Id == 8; /// 并转化成sql语句 select * from MyClass where age > 5 and id原创 2020-12-02 17:31:22 · 568 阅读 · 0 评论 -
动态拼接Lambda表达式-表达式目录树动态构建及修改
动态拼接Lambda表达式-表达式目录树动态构建及修改访问 :表达式树 Expression<Func<int, int, int>> predicate1 = (m, n) => m * n + 2;修改: (m, n) => m * n + 2;改成(m, n) => m * n - 2;/// <summary> /// 访问 表达式树 Expression<Func<int, int, int>&g.原创 2020-12-02 15:36:08 · 454 阅读 · 0 评论 -
动态拼接Lambda表达式-表达式目录树动态构建 And Or Not True False等表达式树的扩展
代码如下: #region lambda expression 拼接方式1 /// <summary> /// Expression表达式树 /// </summary> public class LambdaParameteRebinder : ExpressionVisitor { /// <summary> /// 存放表达式树的参数的字典 /// </summ原创 2020-12-02 14:54:49 · 364 阅读 · 0 评论 -
动态拼接Lambda表达式-表达式目录树动态构建=Expression<Func<MyClass, int>> expressionFunc = x => x.Age + 1
新建测试类/// <summary> /// 测试类 /// </summary> public class MyClass { //public MyClass() //{ // ClassName = "一般"; //} public int Age { get; set; } public string Name { get; set; }原创 2020-12-02 14:49:09 · 296 阅读 · 0 评论 -
动态拼接Lambda表达式-表达式目录树动态构建=Expression<Func<int, int, int>> predicate1 = (m, n) => m * n + 2
//IEnuable与IQueryable//var list = new List<int>().AsQueryable();//list = list.Where(c => c > 1);//参数:Expression<Func<TSource, bool>> predicate,如:Expression<Func<int, bool>> predicate = c => c > 1;Expression<F原创 2020-12-02 14:44:16 · 255 阅读 · 0 评论 -
动态拼接Lambda表达式2
动态拼接Lambda表达式添加类 #region lambda expression 拼接方式1 /// <summary> /// Expression表达式树 /// </summary> public class LambdaParameteRebinder : ExpressionVisitor { /// <summary> /// 存放表达式树的参数的字典原创 2020-12-02 13:17:33 · 336 阅读 · 0 评论 -
lambda 表达式拼接
动态拼接Lambda表达式添加类public class ParameterRebinder : ExpressionVisitor { private readonly Dictionary<ParameterExpression, ParameterExpression> map; public ParameterRebinder(Dictionary<ParameterExpression, ParameterExpression>原创 2020-12-01 12:03:13 · 567 阅读 · 0 评论 -
并发字典ConcurrentDictionary+迭代器--异步
并发字典ConcurrentDictionary+迭代器--异步代码如下:using Microsoft.EntityFrameworkCore;using System;using System.Collections;using System.Collections.Concurrent;using System.Collections.Generic;using System.Linq;using System.Threading;using System.Threading.原创 2020-11-26 16:01:33 · 365 阅读 · 0 评论 -
Task任务取消
Task任务取消主要使用的是CancellationTokenSource对象下的CancellationToken取消标记,代码如下using Microsoft.EntityFrameworkCore;using System;using System.Collections;using System.Collections.Concurrent;using System.Collections.Generic;using System.Linq;using System.T...原创 2020-11-26 15:56:33 · 459 阅读 · 0 评论 -
Redis启动和在注册到windows服务
Redis 启动和在注册到windows服务Redis 启动,点击start.cmd脚本,接口启动,start.cmd脚本内容如下redis-server redis.windows.conf注意:启动了redis,但是只要一关闭cmd窗口,redis就会消失。所以要把redis设置成windows下的服务。,这样就不用每次都去手动启动了,以后可以直接使用,脚本如下redis-serviceinstall .cmd安装成服务脚本(redis设置成windows下的服务,r..原创 2020-10-15 17:37:41 · 183 阅读 · 0 评论 -
设计模式之单例模式的多种使用方式以及单例的优化
设计模式之单例模式的多种使用方式以及单例的优化具体使用案例如下:using System;using System.Collections.Concurrent;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;namespace ConsoleTest{ /// <summ.原创 2020-10-03 15:27:04 · 129 阅读 · 0 评论 -
ASP.NET Core使用静态文件、目录游览与MIME类型管理
ASP.NET Core使用静态文件、目录游览与MIME类型管理Startup管道配置中,可以看到,注入相关静态资源的代码//自定义自己的文件路径,例如提供访问根目录下的文件,http://localhost:5000/preview/README.md //将访问服务端的根目录中的README.md文件 //var provider = new FileExtensionContentTypeProvider(); //pr原创 2020-09-21 15:30:22 · 399 阅读 · 0 评论 -
JWT(json web token)--.JwtBearer IdentityServer4--客户端凭证授权
新建ASP .NET Core Web Api ,名称Linjie.JWT.IDS42、右键项目 NuGet程序包管理工具 添加IdentityServer4,注意版本 不要选4.x.x以上的,选择4.x.x以下的,本文选择的是3.1.3,原因是4.x.x版本相对3.x.x版本的改动比较大3、添加类 IDS4Client,该类用于获取数据代码如下:using IdentityServer4.Models;using System;using System.Collections.Gener原创 2020-08-05 11:48:23 · 766 阅读 · 0 评论 -
JWT(json web token)--.JwtBearer jwt
1、新建ASP .NET Core Web Api ,名称Linjie.JWT2、右键项目 NuGet程序包管理工具 添加Microsoft.AspNetCore.Authentication.JwtBearer,System.IdentityModel.Tokens.Jwt3、添加类JWTHelper,代码如下:using System;using System.Collections.Generic;using System.Security.Claims;using System.原创 2020-08-05 10:57:09 · 331 阅读 · 0 评论 -
NET LOG日志的使用以及设置文件大小和数量限制
NET LOG日志的使用包括log4net和nlog1、新建控制台项目ConsoleLog,使用Nuget程序包管理器,添加log4net和nlog2、配置log4net a、log4net日志设置 设置保存中的文件夹和指定文件数量和大小 b、App.config中添加 日志的配置信息 c、根据App.config中添加日志的配置信息初始化log4net日志 d、使用log4net写日志App.config文件中添加log4net的配置信息,本文...原创 2020-08-03 16:01:53 · 3243 阅读 · 0 评论 -
RabbitMQ使用交换机处理异步消息队列------发布与订阅
RabbitMQ使用交换机处理异步消息队列------发布与订阅RabbitMQ使用交换机处理异步消息队列案例的安装环境可以参考RabbitMQ环境准备/环境搭建,本片在RabbitMQ环境已有的基础上讲述RabbitMQ使用交换机处理异步消息队列------分布式事务处理案例具体过程创建代码如下:1、新建.NET Core console控制台项目ConsoleRabbitMQ项目(生产者 productor,即产生消息的)以及ConsoleRabbitMQ01项目(consumer消费.原创 2020-08-01 18:09:52 · 229 阅读 · 0 评论 -
RabbitMQ使用交换机处理异步消息队列------分布式事务处理案例
RabbitMQ使用交换机处理异步消息队列案例的安装环境可以参考RabbitMQ环境准备/环境搭建,本片在RabbitMQ环境已有的基础上讲述RabbitMQ使用交换机处理异步消息队列------分布式事务处理案例具体过程1、新建.NET Core console控制台项目ConsoleRabbitMQ项目(生产者 productor,即产生消息的)以及ConsoleRabbitMQ01项目(consumer消费者,即使用消息的)2、对控制台项目使用NuGet程序管理包添加RabbitMQ.原创 2020-08-01 17:33:11 · 239 阅读 · 0 评论 -
RabbitMQ使用交换机处理异步消息队列案例
RabbitMQ使用交换机处理异步消息队列案例RabbitMQ使用交换机处理异步消息队列案例的安装环境可以参考RabbitMQ环境准备/环境搭建,本片在RabbitMQ环境已有的基础上讲述RabbitMQ使用交换机处理异步消息队列具体过程1、新建.NET Core console控制台项目ConsoleRabbitMQ项目(生产者 productor,即产生消息的)以及ConsoleRabbitMQ01项目(consumer消费者,即使用消息的)2、对控制台项目使用NuGet程序管理包添加.原创 2020-08-01 01:52:10 · 350 阅读 · 0 评论 -
Hangfire-执行定时任务框架
Hangfire-执行定时任务框架1、新建netframwork console 控制台项目ConsoleHangfireTest,nuget程序包 添加Hangfire2、项目ConsoleHangfireTest右键,添加OWIN Startup 类代码内容:using System;using System.Threading.Tasks;using System.Web.Http;using Hangfire;using Microsoft.Owin;usin..原创 2020-07-31 01:26:37 · 944 阅读 · 0 评论 -
Quartz-定时任务框架
Quartz的使用Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java组件或 EJBs。Quartz的最新版本为Quartz 2.3.2。话不多说,不懂得可以自行百度,下面直接上代码1、新建。net fromwork 控制台项目ConsoleApp12、使用NuGet添加Quar原创 2020-07-31 01:08:19 · 184 阅读 · 0 评论 -
Owin搭建webapi的http测试服务器
Owin搭建webapi的http服务器1、新建netformework 控制台项目ConsoleTestOWIN,使用NuGet,搜索 owinselfhost ,添加Microsoft.AspNet.WebApi.OwinSelfHost2、选择项目ConsoleTestOWIN,右键添加OWIN Startup 类代码如下:using System.Web.Http;using Microsoft.Owin;using Owin;[assembly: OwinSta.原创 2020-07-31 00:21:51 · 689 阅读 · 0 评论 -
MongoDB设置字段过期时间TTL(Time To Live )索引以及修改过期时间
MongoDB可以通过设置字段TTL(Time To Live )索引来设置过期时间1、如下所示,test是Collection,设置Date1的过期时间10秒,只要在插入的数据中包含Date1字段,插入数据后10秒之后会自动删除该条数据//创建字段的TTL(Time To Live )索引db.test.ensureIndex({'Date1':1},{expireAfterSeconds:10})db.test.insertOne({'Date1':new Date(),'Nam.原创 2020-07-30 14:00:38 · 2549 阅读 · 0 评论 -
Centos 7 Docker 部署AspNetCoreapi
AspNetCoreapi 使用 Docker + Centos 7部署环境准备1:安装前准备准备一台Linux服务器或者系统或者安装CentOS 7的虚拟机,本文使用的是安装CentOS7的本虚拟机,确保网络是通的,并可以连接外网,因为我们在部署的过程须有很多的东西需要下载。部署中使用的工具:Xshell:一个用于连接Linux服务器的操作终端Xftp6:一个用于上传已发布的ASPNETCore应用程序的文件系统的工具2:安装Docker启动Xshell连接C...原创 2020-07-29 16:00:23 · 246 阅读 · 0 评论