![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#
文章平均质量分 50
月亮哥
不积跬步无以至千里不积小流无以成江海骐骥一跃不能十步驽马十驾功在不舍锲而舍之朽木不折锲而不舍金石可镂 为API生为框架死为debug奋斗一辈子吃符号亏上大小写的当最后死在需求上
展开
-
Visual Studio强大的帮助工具--Resharper安装与使用
使用ReSharper,你可以进行深度代码分析,智能代码协助,实时错误代码高亮显示,解决方案范围内代码分析,快速代码更正,一步完成代码格式化和清理。实质上,ReSharper特征可用于C#,VB.NET,XML,ASP.NET,XAML,和构建脚本。选择自己想要安装的内容进行勾选,第一个肯定要安装的,然后中间部分可以选择将要把ReSharper集成到的visualstudio的版本,选择已经阅读并同意协议规定,点击Install进行安装。官网上的ReSharper是收费的,但是网上有破解的方法。...转载 2022-07-30 13:44:46 · 7561 阅读 · 1 评论 -
FastTunnel-内网穿透原理
内网穿透.NET COREC#NATHTTP代理端口转发FRPNGORK内网穿透转载 2021-12-09 14:16:20 · 1219 阅读 · 0 评论 -
FastTunnel-开源内网穿透框架
内网穿透.NET COREC#NATHTTP代理端口转发FRPNGORK内网穿透转载 2021-12-09 14:13:52 · 731 阅读 · 0 评论 -
Serilog一个优秀的.NET日志框架
1 Serilog是什么?在.NET使用日志框架第一时间会想到NLog或是Log4Net,Serilog 是这几年快速崛起的Log框架之一,Serilog是以Structured logging 为基础进行设计,透过logging API 可以轻松的记录应用程式中对象属性,方便快速进行logging 内容进行查询与分析,并将其纪录内容透过json (可指定) 的方式输出。2 使用首先,将Serilog.AspNetCore NuGet软件包安装到您的应用程序中。Serilog.AspNet转载 2021-11-30 13:57:35 · 629 阅读 · 0 评论 -
C#多线程读写同一文件处理
在多线程访问读写同一个文件时,经常遇到异常:“文件正在由另一进程使用,因此该进程无法访问此文件”。多线程访问统一资源的异常,解决方案1,保证读写操作单线程执行,可以使用lock解决方案2,使用System.Threading.ReaderWriterLockSlim ,对读写操作锁定处理读写锁是以ReaderWriterLockSlim对象作为锁管理资源的,不同的 ReaderWriterLockSlim 对象中锁定同一个文件也会被视为不同的锁进行管理,这种差异可能会再次导致文件的并发写..转载 2021-11-24 18:04:14 · 5792 阅读 · 0 评论 -
单元格可编辑时的事件--GridView的SelectionChanged事件
GridView处于可编辑状态,左键点击默认为“进入编辑”。将GridView的OptionsColumn.AllowEdit设置为false后左键可触发RowCellClick。但有时候,既希望GridView可以进行编译,又希望可以触发【单元格的点击事件】,比如有需求要求在某列单元格上单击可以弹出窗体,选择数据并返回到GridView上,并且允许手动在GridView上修改或者输入,那应该怎么处理呢?用GridView的SelectionChanged事件,先设置this.gridView1原创 2021-11-22 19:11:50 · 1488 阅读 · 0 评论 -
C# DataTable转换为Html
/// <summary> /// DataTable 转换为 Html /// </summary> /// <param name="dt"></param> /// <returns></returns> public string GetHtmlString(DataTable dt) { S...转载 2021-11-04 11:27:53 · 537 阅读 · 0 评论 -
DevExpress控件的GridControl实现行多选
最近用到DevExpress控件的GridControl控件,需要用到行多选的操作,在网上找的资料,自己总结一下。先展示一下效果:1:设置GridControl控件允许选择多行 Run Designer ->Options->OptionsSelection->MultiSelect=true2:在行头增加多选框,控制行多选Run Designer ->Options->OptionsSelection->MutiSelectMode=Ch...转载 2021-10-21 13:14:14 · 4488 阅读 · 0 评论 -
C# 开源代码 收集
领域驱动设计实战—基于DDDLite的权限管理OpenAuth.net原创 2021-09-02 09:26:09 · 544 阅读 · 0 评论 -
GeneralUpdate
组件介绍GeneralUpdate是基于.net standard开发的一款(c/s应用)自动升级程序。该组件将更新的核心部分抽离出来方便应用于多种项目当中目前适用于wpf,控制台应用,winfrom。功能介绍 GeneralUpdate.Core:断点续传、逐版本更新。 GeneralUpdate.ClientCore:断点续传、逐版本更新、更新组件自更新、便捷启动更新组件 GeneralUpdate.AspNetCore:服务端支持更新包下载地址、版本信息等内容。转载 2021-08-30 13:21:53 · 439 阅读 · 0 评论 -
SoEasyPlatform 代码生成器
介绍一款轻量级开源的代码生成器,相对较动软代码生成器而言要轻量的多,支持多种数据库,所用到dll组件也都在github有源码,代码非常的简单有点基础的看源码可以把生成的项目改成自已的风格。特色该代码生成器最大的特点就三个简单,无需安装,生成的代码 简单并且有教学用例,还有就是调试和修改模版简单。使用步骤1.从上面的地址下载 SoEasyPlatform到本地下载地址:https://github.com/sunkaixuan/SoEasyPlatform2.解压项..转载 2021-08-17 17:27:44 · 291 阅读 · 0 评论 -
C# 浅拷贝与深拷贝(复制)
浅拷贝:当针对一个对象浅拷贝的时候,对于对象的值类型成员,会复制其本身,对于对象的引用类型成员,仅仅复制对象引用,这个引用指向托管堆上的对象实例。深拷贝:对引用成员指向的对象也进行复制,在托管堆上赋值原先对象实例所包含的数据,再在托管堆上创建新的对象实例。public static T CreateDeepCopy<T>(T obj){ T t; MemoryStream memoryStream = new MemoryStream(); Binar原创 2021-07-08 16:31:56 · 151 阅读 · 0 评论 -
c# 获得方法的调用者的类名,方法名(日志)
1、返回当前方法所在的类名:using System.Reflection;sting className = MethodBase.GetCurrentMethod().ReflectedType.Name;2、返回调用当前方法的方法名:using System.Diagnostics;using System.Reflection;StackTrace trace = new StackTrace();StackFrame frame = trace.GetFrame(1);Meth原创 2021-07-07 15:29:58 · 3057 阅读 · 0 评论 -
Enigma Virtual Box - 文件系统虚拟化解决方案
Enigma Virtual Box是软件虚拟化工具,它可以将多个文件封装到应用程序主文件,从而制作成为单执行文件exe下载地址:https://enigmaprotector.com/en/downloads.html操作流程:①选择需封包的exe程序,并设置封包后单个exe文件的路径和名称②添加执行的相关依赖库,请确保依赖库完整③ 点击OK,再运点击Process运行则在输出目录可以看到单个可执行exe文件。...原创 2021-07-02 11:37:38 · 1307 阅读 · 0 评论 -
C# 基于ComboBox 下拉多选 自定义控件 源代码
一,控件效果:该控件是继承自ComboBox的一个重定义控件。整体效果如下图所示:1,界面效果图:2,测试代码截图:二,控件优点:多选。 可绑定List,DataTable,Dictionary类型的数据源。 在下拉列表中可显示自定义的多列数据。 可在下拉列表中通过输入关键字,自动搜索符合条件的数据行。 可指定不同的值列和显示列。 可设置是否显示行头和列头。 程序根据显示列的多少和宽度,自动调整下拉界面的宽度。三,使用说明:将【BaseCombo原创 2021-06-26 10:02:39 · 2741 阅读 · 0 评论 -
abp vNex
abp vNexASP.NET Boilerplate Project (ASP.NET样板项目)参考 abp vNext微服务框架分析 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ABP vnext学习记录一 介绍转载 2021-04-12 16:14:51 · 300 阅读 · 0 评论 -
ASP.NET Core 3.1 WebApi+JWT+Swagger+EntityFrameworkCore构建REST API
一、准备使用vs2019新建ASP.NET Core Web应用程序,选用api模板: 安装相关的NuGet包:二、编码首先编写数据库模型: 用户表 User.cs:public class User { [Key] public Guid ID { get; set; } [Required] [Column(TypeName = "VARCHAR(16)")] public string User转载 2021-01-06 13:34:44 · 338 阅读 · 0 评论 -
C# Textbox屏蔽中文输入法
winform textbox屏蔽中文输入法this.txtPss.ImeMode = System.Windows.Forms.ImeMode.Disable;取值 五笔加加 微软拼音3.0 搜狗拼音 说明 NoControl 首次调出后按一次ctrl+space才能正确使用 中西标点或全半角字符继承上次设置 调出后默认为英文输入状态调出后默认为西文标点 英文输入时为半角字符 调出后默认为英文输入状态调出后默认为西文标点 英文输入时为半角字符...原创 2021-01-04 15:30:00 · 2748 阅读 · 0 评论 -
内存回收
#region 内存回收/// <summary>/// 设置进程的工作空间/// </summary>/// <param name="process"></param>/// <param name="minSize"></param>/// <param name="maxSize"></param>/// <returns></returns>[DllImport.原创 2021-01-04 10:24:36 · 232 阅读 · 0 评论 -
拆分一个DataTable为多个DataTable
拆分一个DataTable为多个DataTable/// <summary>/// 分解数据表/// </summary>/// <param name="originalTab">需要分解的表</param>/// <param name="rowsNum">每个表包含的数据量</param>/// <returns></returns>public DataSet SplitDataTabl原创 2021-01-04 10:20:03 · 598 阅读 · 0 评论 -
开源.net 混淆器ConfuserEx介绍
今天给大家介绍一个开源.net混淆器——ConfuserExhttp://yck1509.github.io/ConfuserEx/由于项目中要用到.net 混淆器,网上搜寻了很多款,比如Dotfuscator、xeoncode、foxit等等。但大部分收费,当然也有破解版的,公司要求不能用盗版软件。找了半天终于找到了ConfuserEX,用起来还行,就赶紧拿出来给大家分享下。下载地址:https://github.com/yck1509/ConfuserEx/releases.转载 2020-10-29 17:45:02 · 599 阅读 · 0 评论 -
VS2019 DotFuscator 混淆.dll文件
VS2019默认是没有安装DotFuscator的,需要在顶部中间位置的搜索框输入:DotFuscator 搜索来安装安装完成即可使用拉!是不是很激动 哈哈哈... 安装完自动重启软件中然后在工具栏点击:之后会让你填写一些注册信息,注册后会收到一封验证邮件,把对应的验证码填写即可。看到界面后很开心,现在是中文版的我们搞个.dll文件测试一下我们先看下未加密的.dll文件,然后来对比一下先去下载一个免费的反编译软件:ILSyp ,不懂安装的百度一下,这...转载 2020-10-29 16:48:27 · 986 阅读 · 0 评论 -
dateTimePicker 设置空默认值
1.属性中ShowCheckBox选择True,format选择Custom,然后Checked选择false2.事件选择mousedown3.代码为if (!this.dateTimePicker.Checked){ this.dateTimePicker.Format = DateTimePickerFormat.Custom; this.dateTimePicker.CustomFormat = " "; this.dateTimePicker.Text = "原创 2020-10-15 15:56:22 · 2561 阅读 · 0 评论 -
C#设计模式--工厂模式
概括:在我们日常生活中,每天都会烧开水和烧菜,那么,烧开水就相当于一个简单的new操作,构造的对象就是白开水。而烧菜就相当于一个复杂的new操作,构造的对象就是菜肴。那我们如何才能轻松地得到想吃的菜肴,而不必关心烧菜的过程尼?答案当然是去饭店点菜了,这样你只需要提供菜名就OK了,实现这种需求所用到的设计模式就是工厂模式。分类:简单工厂模式:一个饭店,可以提供酸辣土豆丝,红烧鱼,各种菜肴,比如菜馆。工厂方法模式:多个饭店,每个饭店只能做一种菜肴,比如火锅店,面馆。抽象工厂模式:这里不对抽象转载 2020-09-21 15:43:16 · 615 阅读 · 0 评论 -
Dev之Gridview导出EXCEL(多页)
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using DevExpress.XtraGrid.Views.BandedGrid;using DevExpress.XtraPrintingLinks;using DevExpress.XtraPrinting; private.原创 2020-09-15 16:37:26 · 560 阅读 · 0 评论 -
WebService、WCF、WebAPI之间的区别
Web Service1、它是基于SOAP协议的,数据格式是XML2、只支持HTTP协议3、它不是开源的,但可以被任意一个了解XML的人使用4、它只能部署在IIS上WCF1、它是基于SOAP协议的,数据格式是XML2、这个是Web Service(ASMX)的进化版,可以支持各种各样的协议,像TCP,HTTP,HTTPS,Named Pipes, MSMQ.3、WCF的主要问题是,它配置起来特别的繁琐4、它不是开源的,但可以被任意一个了解XML的人使用5、它可.转载 2020-09-03 09:34:48 · 3002 阅读 · 0 评论 -
C# 如何获取json字段中指定字段的值
public void pageload(){ JObject jt = Newtonsoft.Json.JsonConvert.DeserializeObject<JObject>("{\"company\":\"石家庄盛彩电子科技有限公司\",\"siteUrl\":\"http://hbshengcai.com\"}"); Response.Write(jt["...原创 2020-04-21 15:34:30 · 4764 阅读 · 0 评论 -
C#组件系列——又一款Excel处理神器Spire.XLS,你值得拥有(二)
阅读目录一、基础入门 1、新建Workbook 2、读写Workbook 3、保存Workbook 二、样式 1、文本样式 2、单元格样式 3、表格样式 4、富文本编辑框 三、冻结行列 1、冻结行 2、冻结列 四、合并单元格 五、选项过滤功能 六、下拉框 七、显示、隐藏行列 八、搜索结果高亮 九、总结正文前言:上篇C#组...转载 2020-03-16 15:49:27 · 1557 阅读 · 0 评论 -
C#组件系列——又一款Excel处理神器Spire.XLS,你值得拥有
阅读目录一、组件介绍 二、组件安装使用 1、官方下载安装 2、Nuget安装 三、组件功能介绍 1、Excel转PDF 2、Excel生成图表 3、其他功能介绍 四、总结正文前言:最近项目里面有一些对Excel操作的需求,博主想都没想,NPOI呗,简单、开源、免费,大家都喜欢!确实,对于一些简单的Excel导入、导出、合并单元格等,它都没啥太大的问题,...转载 2020-03-16 15:48:12 · 1127 阅读 · 0 评论 -
Nancy之文件上传与下载
前言前后端分离,或许是现如今最为流行开发方式,包括UWP、Android和IOS这样的手机客户端都是需要调用后台的API来进行数据的交互。但是这样对前端开发和APP开发就会面临这样一个问题:如何知道每个API做什么?可能,有人会在内部形成一份word文档、pdf;有人会建立一个单独的站点,然后将API的地址,参数等信息列在上面;有人会借助第三方的工具来生成一份文档等。当然,这基本是...转载 2018-08-06 17:14:27 · 1490 阅读 · 0 评论 -
Nancy之实现API的功能
https://www.cnblogs.com/lonelyxmas/p/9068167.html0x01、前言现阶段,用来实现API的可能大部分用的是ASP.NET Web API或者是ASP.NET MVC,毕竟是微软官方出产的,用的人也多。但是呢,NancyFx也是一个很不错的选择。毕竟人家的官方文档都是这样写的:framework for building HTTP based...转载 2018-08-06 17:03:18 · 1841 阅读 · 0 评论 -
Nancy Web框架
Nancy框架 一、创建第一个Nancy应用 二、探索Nancy的module 1. 模块能够在全局被发现 2. 使用模块为路由创建一个根 三、定义路由 1. 方法 2. 模式 3. 模式的优先级 4. 动作 5. 条件 6. 路由片段约束 6.1 自定义约束 例子 7. 选择去调用路由的秘诀 ...转载 2018-08-06 16:18:08 · 3817 阅读 · 0 评论 -
C# 将DataTable表中的数据批量插入到数据库表中的方法
C#中有时候需要将内存中的数据批量插入到数据库表中,使用for循环进行批量插入不但耗时而且会频繁操作数据库。针对数据量很少的可以使用for循环插入,但是针对于数据量大的则不推荐使用for循环插入,推荐使用sql的块处理插入。块处理不但耗时少而且不会频繁对数据库进行操作,只是需要注意的一点是DataTable中的列必须与表的列完全一致。如下代码是批量插入的一个函数,自测可用。 ...转载 2018-08-10 15:14:43 · 10880 阅读 · 2 评论 -
Nancy 入门教程
一、Nancy简介 Nancy是一个轻量级的独立的框架,下面是官网的一些介绍: Nancy 是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台,框架的目标是保持尽可能多的方式,并提供一个super-duper-happy-path所有交互。 Nancy 设计用于处理 DELETE, GET, HEAD, OPTIONS, POST, P...转载 2018-08-06 10:12:11 · 6731 阅读 · 0 评论 -
C# 路径中获取文件全路径、目录、扩展名、文件名称
//获取当前运行程序的目录Application.StartupPath;Environment.CurrentDirectory;//一个文件目录string filePath = "C:\\JiYF\\BenXH\\BenXHCMS.xml";System.IO.Path.GetFullPath(filePath); ...原创 2018-08-01 15:56:35 · 4210 阅读 · 0 评论 -
C# 对象转Json序列化
JSON Json(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JS的一个子集。 Json采用完全独立于语言的文本格式。这使得Json成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。 Json简单来说就是JS中的对象和数组,所以Json也存在两种结构:对象、数组。Json对象:Json对象定义在花括号“{}”内,以K...转载 2018-08-01 15:15:50 · 7397 阅读 · 0 评论 -
RestSharp post 文件
public string sendPost(string postUrl, List<string> attachments, string postDataStr) { try { var client = new RestClient(postUrl); ...原创 2018-08-01 15:00:02 · 2949 阅读 · 1 评论 -
DevExpress学习系列(控件篇):GridControl的基本应用
一般属性设置不显示分组框:Gridview->Option View->Show Group Panel=false 单元格不可编辑:gridcontrol -->gridview -->OptionsBehavior -->Editable=false 禁用过滤器:Run Design->OptionsCustomization->AllowFi...转载 2018-08-09 13:01:43 · 2259 阅读 · 0 评论 -
C#语言中的组件Datarelation使用实例代码详解
在C#语言中的组件包括有DataSet(DataTable、DataRow、DataColumn、DataRelation、Constraints、DataView)。Datarelation是基于公共键建立父(主)表和子(详细资料)表之间的关系。Datarelation的作用在于可以使与正在使用的记录相关的记录可用(如使用父记录时提供子记录,如使用子记录则提供父记录);然后还可以强制约束的引用完...转载 2018-07-06 11:14:35 · 3936 阅读 · 0 评论 -
C# 压缩文件
本节探讨C#压缩文件的方法,直接上代码public class ZipUtility { /// <summary> /// 所有文件缓存 /// </summary> List<string> files = new List<string>(); ...转载 2018-07-23 17:03:01 · 1282 阅读 · 3 评论