C#
驾驭人生
道不行,乘桴浮于海
展开
-
C#中类名不一样,类成员完全一样的相互转化
【代码】C#中类名不一样,类成员完全一样的相互转化。原创 2023-02-19 11:17:51 · 421 阅读 · 0 评论 -
C#中单例的双重锁定模式
C#中单例的双重锁定模式转载 2022-09-14 15:26:58 · 851 阅读 · 0 评论 -
雪花ID前端精度丢失的解决方案
雪花ID前端精度丢失的解决方案,转为string。原创 2022-08-26 08:34:50 · 12 阅读 · 0 评论 -
当调用异步方法不需要等待,不需要返回值时写法
当调用异步方法不需要等待,不需要返回值时写法原创 2022-08-24 08:22:34 · 789 阅读 · 0 评论 -
c# 实现两个 DateTime 日期块 分割
public class DateTimeArea { /// <summary> /// 开始时间 /// </summary> public DateTime startTime { get; set; } /// <summary> /// 开始时间 /// </summary> public DateTime...原创 2022-05-20 10:41:39 · 12 阅读 · 0 评论 -
c# 根据list 生成树
private List<CategoryTreeDto> BuildCategoryTree( List<MSE_RPT_CATEGORY> argList, int parentId) { List<CategoryTreeDto> list = (from d in argList where d.ParentId ..原创 2022-05-12 18:26:19 · 654 阅读 · 0 评论 -
c# 获取枚举描述的扩展方法
/// <summary> /// 枚举扩展类 /// </summary> public static class EnumExtension { /// <summary> /// 获取枚举的描述信息 /// </summary> public static string GetDescription(this Enum em) { .原创 2022-05-12 10:38:38 · 463 阅读 · 0 评论 -
.net core Swagger添加bearer token参数
#region 添加Swagger services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "API Demo", Version = "v1" }); ...原创 2022-04-28 10:40:41 · 1412 阅读 · 0 评论 -
AspNetCoreRateLimit接口访问限制中间件的使用
region AspNetCoreRateLimit 代码段是相关的配置文件,切记注意 services.AddRedisRateLimiting();代码放在代码端最后;2、net6.0下 AspNetCoreRateLimit5.0、CSRedisCore3.8.670 Caching.CSRedis3.8.670 使用方法(此用法没测试)2、在项目nutget中找到AspNetCoreRateLimit.Redis组件。1、在项目nutget中找到AspNetCoreRateLimit组件。原创 2022-04-25 10:29:10 · 895 阅读 · 0 评论 -
Castle.DynamicProxy实现事务单元控制
using System;using System.Collections.Generic;using System.Text;namespace Initial.Extensions{ /// <summary> /// 工作单元 /// 仅用来做特性标记 /// </summary> public class UnitOfWorkAttribute : Attribute { }}using Cas.原创 2022-04-22 13:39:59 · 289 阅读 · 0 评论 -
Newtonsoft中JArray 转成list<object>
public class User{ public string UserName{ get; set; } public string Sex{ get; set; }} public async Task<IActionResult> RunListAsync([FromBody] dynamic param) { if (param?.users != null) {.原创 2022-04-20 14:14:35 · 1295 阅读 · 0 评论 -
ASP.NET Core 使用Enablebuffering多次读取body
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory){ //允许body重用 app.Use(next => context => { context.Request.EnableBuffering(); return next(context); })} .原创 2022-04-11 19:43:01 · 1136 阅读 · 0 评论 -
linq分组统计功能
public async Task<Dictionary<string, ArrayList>> QueryItemListContrastAsyncProc(ItemDataContrastCriteria criteria) { var pageResult= await _repository.GetItemListContrastAsyncProc(criteria); if (pageResult.Total...原创 2022-03-23 09:15:22 · 1160 阅读 · 0 评论 -
restClient访问SSL
restClient访问SSL原创 2021-12-24 08:55:03 · 1375 阅读 · 0 评论 -
采用Socket方式,判断服务器连接
#region 采用Socket方式,判断服务器连接 /// <summary> /// 采用Socket方式,判断服务器连接 /// </summary> /// <param name="host">服务器主机名或IP</param> /// <param name="port">端口号</param> /// <param ...原创 2021-12-15 17:13:02 · 371 阅读 · 0 评论 -
.net core 允许跨域
在Startup的ConfigureServices()中添加services.AddCors()在Startup的Configure()中添加app.UseCors(); 保证其在app.UseMvc();之前app.UseCors(builder => builder .AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials()); app.UseMvc();...转载 2021-11-19 09:50:33 · 473 阅读 · 0 评论 -
C#利用反射获取与设置对象的属性值
这两个方法都是泛型方法,可以用于获取和设置对象的属性值。原创 2021-09-02 17:48:43 · 4366 阅读 · 0 评论 -
ajax同时上传文件和表单数据
<input type="file" id="openFile" name="file" accept="text/csv" />原创 2021-06-10 14:59:45 · 404 阅读 · 0 评论 -
C#过滤XML(十六进制值 0x1D)无效的字符;过滤低位非打印字符
加载或保存XML时引发的异常.System.ArgumentException: “”(十六进制值 0x1D)是无效的字符。产生原因是xml文件中包含低位非打印字符造成的处理方法:在产生xml文件的时候,过滤低位非打印字符扩展方法如下:public static string ReplaceHexadecimalSymbols(this string txt){string r = “[\x00-\x08\x0B\x0C\x0E-\x1F\x26]”;return Regex.Replace(原创 2021-03-10 13:42:51 · 961 阅读 · 0 评论 -
C# 调用cmd.exe命令行命令 net use
using System;using System.Collections.Generic;using System.Diagnostics;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ZHExcel{ public class ProcessCmd { public static bool Connect(string Path, string User...原创 2021-02-06 10:53:47 · 793 阅读 · 1 评论 -
LINQ将代码中string []转换为int []或者List<int>
var string splitStr=“1,2,3,4,5,6”;1、List<int> listCode = splitStr.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries) .Select(Int32.Parse).ToList();2、List<int> listCode = Array ...原创 2021-01-13 14:42:06 · 644 阅读 · 0 评论 -
泛型,动态创建List<T>
第一种: static void Main() { object intList = MakeList(typeof(int), 1, 2, 3); object strList = MakeList(typeof(string), "sdfd", "fet"); //List<int> foreach(object obj in (System.Collecti...原创 2021-01-12 14:45:08 · 1357 阅读 · 0 评论 -
c#反射获取类的属性
主要是使用递归循环出,类的所有属性,其中需要判断属性的类型是否泛型或是否基本类型,尤其注意string类型。class Program { static Type parent = null; static List<string> listProperty = new List<string>(); static void Main(string[] args) { GetM...原创 2020-11-28 14:10:38 · 1363 阅读 · 0 评论 -
C#中抽象类与接口的区别详解
.面向接口编程和面向对象编程是什么关系首先,面向接口编程和面向对象编程并不是平级的,它并不是比面向对象编程更先进的一种独立的编程思想,而是附属于面向对象思想体系,属于其一部分。或者说,它是面向对象编程体系中的思想精髓之一。接口是对动作的抽象,抽象类是对根源的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它原创 2020-11-19 13:01:58 · 412 阅读 · 0 评论 -
C#关键字override详解
重载、重写、覆写,分别指的是overload、override、new。一、override重写,是在子类中重写父类中的方法,两个函数的函数特征(函数名、参数类型与个数)相同。用于扩展或修改继承的方法、属性、索引器或事件的抽象或虚拟实现。提供从基类继承的成员的新实现,而通过override声明重写的方法称为基方法。注意事项:1.重写基方法必须具有与override方法相同的签名。2.override声明不能更改virtual方法的可访问性,且override方法与virtual方法必须具有...原创 2020-11-10 13:22:58 · 672 阅读 · 0 评论 -
C# Activator实例化类的一般步骤
Activator.CreateInstance 方法的第一个参数是要创建的类型,第二个参数是可选的,用于指定构造函数的参数。如果要创建的类型没有默认构造函数,那么必须传递构造函数所需的参数。参数列表不同:Invoke 方法的第二个参数是 object[] 类型的数组,用于传递方法的参数;访问权限不同:Invoke 方法可以调用 public、protected、private 等所有访问权限的方法,而 InvokeMember 方法需要指定对应的 BindingFlags,才能调用对应访问权限的方法。原创 2020-11-10 10:14:41 · 833 阅读 · 0 评论 -
下载远程服务器文件
/// <summary> /// 下载远程服务器文件 /// </summary> /// <param name="url">远程地址</param> /// <param name="path">下载到的本地路径</param> /// <param name="filename">文件名称</param>...原创 2020-05-12 08:58:37 · 333 阅读 · 0 评论 -
C#打包文件夹成zip格式
C#打包文件夹成zip格式(包括文件夹和子文件夹下的所有文件)C#打包zip文件可以调用现成的第三方dll,事半功倍,而且该dll完全免费,下载地址:SharpZipLib下载完解压缩后,把ICSharpCode.SharpZipLib.dll拷贝到当前项目的目录下(如果偷懒的话,可以直接拷贝到当前项目的bin\Debug目录下),在VS打开的项目引用上右键添加引用ICSharpCode.SharpZipLib.dll然后,在VS打开的项目上右键新建一个类,命名为ZipHelper.cs,把...转载 2020-05-11 22:43:22 · 662 阅读 · 2 评论 -
ajax同时上传文件和表单数据
//开始上传文件和表单数据function uploadExcel() { var fileUpLoad = $("#ExcelUpload").get(0); var files = fileUpLoad.files; var data = new FormData(); for (var i = 0; i < files.length; i++) {...原创 2020-04-16 19:13:12 · 1559 阅读 · 0 评论 -
c# winfrom子线程更新ui
定义委托: Action<int, string> action; private void Form_Load(object sender, EventArgs e) { action = new Action<int, string>(Msg); } private void Msg(int ar...原创 2020-03-28 21:28:02 · 294 阅读 · 0 评论 -
C# 动态修改DataGridView数据源,根据不同条件显示不同数据
在实际应用中,需要动态根据程序执行中的数据显示不同数据表中的数据,两个表中的数据列有一些并不相同,因此不能使用相同的数据列显示。可以在每次绑定之前先清空所有数据列,然后根据数据源的信息让程序自动再生成数据列 string sql = @"SELECT * FROM QQ "; DataView.Columns.Clear(); ...原创 2020-03-11 13:14:16 · 1293 阅读 · 0 评论 -
按照首字母大写拆分字符串
String str = "UnitedStatesMinorOutlyingIsl"; var reg = @"(?<!^)(?=[A-Z])"; var mc = Regex.Split(str, reg);原创 2020-03-03 17:02:13 · 676 阅读 · 0 评论 -
c# string 类型扩展方法
public static class StringExtensions { /// <summary> /// 移除空白符回车符制表符等,如有遗漏,请大家 /// 自己修改添加 /// </summary> /// </summary> /// <...原创 2020-03-01 11:35:45 · 606 阅读 · 0 评论 -
xml中一些特殊符号的编码转换
空格  < 小于 < <> 大于 > >& &符号 & &" 双引号 " ...原创 2020-02-21 14:57:41 · 376 阅读 · 0 评论 -
c# 动态反射赋值
public class Form_list { public BaseData G_no { get; set; } public BaseData Cop_g_no { get; set; } public BaseData Code_hs { get; set; } }public class BaseData {...原创 2019-12-27 09:59:42 · 640 阅读 · 0 评论 -
SQL两表之间:根据一个表的字段更新另一个表的字段
1. 写法轻松,更新效率高:updatetb1set field1=tb2.field1from tb2where tb1.id=tb2.id2. 常规方式,写法相当于一个Leftjoin,以外面的where为更新条数,如果不加where就是所有记录update tb1set field1=(select top 1 field1 from tb2 where tb...原创 2019-12-20 22:20:34 · 421 阅读 · 0 评论 -
非netcore 中使用 nlog +ElasticSearch 进行日志存储的配置
尤其注意加粗的部分,很多文档 都是吧uri 写成 ConnectionStringName(netcore中使用)进入bin目录下执行:elasticsearch-service.batinstall<?xml version="1.0" encoding="utf-8" ?><nlog xmlns="http://www.nlog-project.or...原创 2019-11-13 08:49:26 · 348 阅读 · 0 评论 -
c# 调用java 生成的dll
c# 调用java 生成的dll 需求安装下面的文件Install-PackageIKVM.OpenJDK.XML.Bind-Version7.2.4630.5Install-PackageIKVM.OpenJDK.Security-Version7.2.4630.5原创 2019-11-07 17:07:57 · 312 阅读 · 0 评论 -
webapi request获取参数
如果ajax不是传递json格式参数,在WEBAPI接收参数不是很方便,跟传统的request.querystring和request.form有很大区别[AcceptVerbs("Get", "Post")]public async Task<HttpResponseMessage> YWYK() { HttpContextBa...原创 2019-10-15 08:57:53 · 1263 阅读 · 0 评论 -
Excel表格中设置数据的有效性
excel表格添加添加有效性: DataTable dtLA = LAbll.LogisticsAccounts(DeptId); 查询数据 if (dtLA.Rows.Count < 20) //excle有效性数据不能超过255个字符 ...原创 2019-10-12 11:03:03 · 671 阅读 · 0 评论