C#
文章平均质量分 54
今晚打老虎z
这个作者很懒,什么都没留下…
展开
-
Net Core 多环境的配置、调试和部署
例如,appsettings.Production.json 和 appsettings.Development.json。创建环境配置文件 接着创建环境对应的配置文件,直接复制两个appsettings.Development.json,并重命名为 appsettings.Staging.json appsettings.Production.json。项目中已经存在两个配置文件,它们对应的环境都是Development,也就是对应会读取appsettings.Development.json中的配置。转载 2022-10-20 14:17:32 · 1805 阅读 · 0 评论 -
C#日期类型转化总结【转化,农历,节气,星期】
参考链接:https://blog.csdn.net/m1m2m3mmm/article/details/123231352。采用拼接连接符的方式进行日期转换。将8位日期字符串转换为日期格式。使用字符串插入函数进行日期转换。将6位字符串转化为日期格式。原创 2022-09-28 13:08:19 · 803 阅读 · 0 评论 -
IIS 共享目录读写报错 Access to the path:“\\192.168.0.1\1.txt”is denied解决方案
IIS 共享目录读写报错 Access to the path:“\192.168.0.1\1.txt”is denied解决方案参考文章:https://www.codeprj.com/blog/903e941.html(1)IIS 共享目录读写报错 Access to the path:“\192.168.0.1\1.txt”is denied解决方案https://www.cnblogs.com/ATtuing/p/9453204.html(2)https://www.cnblogs.com转载 2022-03-04 15:01:03 · 435 阅读 · 0 评论 -
NET 6 中新增的LINQ 方法
.NET 6 中添加了许多 LINQ 方法。 下表中列出的大多数新方法在 System.Linq.Queryable 类型中具有等效方法。欢迎关注如果你刻意练习某件事情请超过10000小时,那么你就会达到世界级别TryGetNonEnumeratedCount 尝试在不强制枚举的情况下确定序列中的元素数。 List<object> numbers1 = new List<object>() { 5, 4, "nihao" }; int num = 0; num原创 2021-12-19 12:37:57 · 578 阅读 · 0 评论 -
C# Linq 交集、并集、差集、去重
C# Linq 交集、并集、差集、去重今晚打老虎:如果你刻意练习某件事情请超过10000小时,那么你就会达到世界级别其实只要明白 LINQ查询操作符的Distinct、Union、Concat、Intersect、Except、Skip、Take、SkipWhile、TakeWhile、Single、SingleOrDefault、Reverse、SelectMany,Aggregate()的使用,一些简单的操作就可以了。合并两个数组,并去掉重复元素,然后排序(C#)List<int>转载 2021-12-16 16:25:41 · 1414 阅读 · 0 评论 -
C# JArray与JObject 的使用
首先引用命名空间using Newtonsoft.Json.Linq如何获取json里的某个属性(节点)值,对其删改,新增//2.1 数组用JArray加载 string jsonText = "[{'a':'aaa','b':'bbb','c':'ccc'},{'a':'aa','b':'bb','c':'cc'}]"; var mJObj = JArray.Parse(jsonText); //需求,删除列表里的a节点的值为'aa'的项 IList<JToken> d原创 2021-10-24 19:49:49 · 7741 阅读 · 0 评论 -
Linq中 的 ToLookup 和 GroupBy 进行分组
ToDictionary 和ToLookUp 都是通过 key 来找到相应的键值,ToDictionary 转换成是键值对 关系是一一对应的关系【key值是唯一的不能重复】。ToLookUp:ToLookUp类似于Dictionary<string,List>【key值可重复】public void LookUpAndDic(){ var initList = new List<LookUpModel>() { new LookUpMode.原创 2021-10-24 16:21:36 · 2915 阅读 · 0 评论 -
记录一次C#爬虫记录,获取必应图片
记录一次C#爬虫记录,获取必应图片先说明下,具体的源码 https://wwa.lanzoui.com/iXeZTv7pevi最后整理的文件全部放到github上面了https://gitee.com/Pridejoy/Bing原创 2021-10-11 15:51:07 · 370 阅读 · 0 评论 -
C# 和 SQL Server中 PadLeft和PadRight 的用法
C# 中 PadLeft和PadRight 的用法需求:需要一个字符串实现自增。是根据数据库中一个自增的int类型的值,实现自增的。但是要加上前缀。比如,数据库中有一个自增的值,为,2。那么这个自增的值后面的值就位3、4、5、6、7…100、101、102…所以我要获得 的这个字符串就要是"S0001"、“S0002”、“S0003”…“S0100”、“S0101”、“S0102”…totalWidth:结果字符串中的字符数,等于原始字符串的数目,字符加上任何其他填充字符。paddingChar:原创 2021-10-11 10:03:00 · 1289 阅读 · 0 评论 -
.NET 中的中间件(Middleware)
ASP.NET Core 中间件什么是中间件(Middleware)?中间件是组装到应用程序管道中以处理请求和响应的软件。 每个组件:选择是否将请求传递给管道中的下一个组件。可以在调用管道中的下一个组件之前和之后执行工作。请求委托(Request delegates)用于构建请求管道,处理每个HTTP请求。请求委托使用Run,Map和Use扩展方法进行配置。单独的请求委托可以以内联匿名方法(称为内联中间件)指定,或者可以在可重用的类中定义它。这些可重用的类和内联匿名方法是中间件或中间件组件。转载 2021-10-10 20:04:54 · 5279 阅读 · 0 评论 -
使用 Visual Studio 调试器附加到正在运行的进程
使用 Visual Studio 调试器附加到正在运行的进程使用场景当项目在测试环境上有bug,需要运行代码调试一下,这时就需要在测试环境上安装一个调试工具,然后在本地运行代码,远程链接到测试环境服务器来调试代码;方式一:工具下载https://visualstudio.microsoft.com/zh-hans/downloads/?rr=https://docs.microsoft.com/en-us/visualstudio/debugger/remote-debugging?view=vs-原创 2021-10-06 20:54:45 · 1281 阅读 · 0 评论 -
C#微信公众号开发
C#微信公众号开发一》 准备【开发文档】【微信公众号测试接口】用自己的微信扫码登陆,然后就可以获取就有了appId 和 appsecret。二》获取access_token打开 微信公众平台接口调试工具这个access_token是通过appID 和 appsecret来生成的,access_token 有效期为 两个小时(7200秒),一天可以获取2000次,只要是向微信服务器发送请求都需要带上这个access_token /// <summary>转载 2021-10-05 19:03:15 · 1164 阅读 · 0 评论 -
C# 企业微信消息推送对接,实现天气预报推送
C# 企业微信消息推送对接,实现天气预报推送准备工作需要获取的东西1. 企业Id,2.应用secret 和 应用ID获取企业id注册完成后,在我的企业=》企业信息=》最下面企业id获取应用secret 和 应用ID发送微信消息 class WeCom { public static string weComCId = "ww2b b0bf8";//企业Id① public static string weComSecret = "EbKnQqG原创 2021-09-25 11:29:55 · 898 阅读 · 0 评论 -
.NET Core 基于 IHostedService 实现后台定时任务
.NET Core 基于 IHostedService 实现后台定时任务迷恋自留地NET Core 2.0 引入了 IHostedService ,基于它可以很方便地执行后台任务,.NET Core 2.1 则锦上添花地提供了 IHostedService 的默认实现基类 BackgroundService ,在这篇随笔中分别用 Web 与 Console 程序体验一下。第一步:首先继承 BackgroundService 实现一个 TimedBackgroundService class Time原创 2021-09-22 17:28:55 · 963 阅读 · 0 评论 -
C#中 Socket的使用
好记性不如烂笔头1.什么是Socket2.Socket通信模型:第一步:服务端监听某个端口第二步:客户端向服务端地址和端口发起Socket请求第三步:服务器接收连接请求后创建Socket连接,并维护这个连接队列第四步:客户端和服务端就建立起了双工同信,客户端与服务端就可以实现彼此发送消息3.服务端代码的实现using System;using System.Net;using System.Net.Sockets;using System.Text;namespace Serv原创 2021-09-20 20:15:40 · 3638 阅读 · 0 评论 -
Web API 控制器的行为和操作方法的属性
ControllerBase 类Web API 包含一个或多个派生自 ControllerBase 的控制器类。 Web API 项目模板提供了一个入门版控制器[ApiController][Route("[controller]")]public class WeatherForecastController : ControllerBase特性说明[Route]指定控制器或操作的 URL 模式。[Bind]指定要包含的前缀和属性,以进行模型绑定。[Http原创 2021-09-19 11:30:42 · 495 阅读 · 0 评论 -
C#中 自定义验证规则ValidationAttribute的使用
C#中 自定义验证规则ValidationAttribute的使用迷恋自留地进行接口请求的时候难免会对请求字段进行验证,验证对象的所有字段的值是否合乎要求,如进行非空检测,长度检测等等。Required用法示例[Required(ErrorMessage="请填写名称")]如果属性为null,"",或只包含空白字符,会引发异常(ModelState.IsValid会false)RegularExpression用法示例[RegularExpression(pattern:@"^[1-翻译 2021-09-04 16:33:52 · 1161 阅读 · 0 评论 -
VS2020中调用调用WebService
VS2020中调用调用WebService一、前言在日常工作中,如果涉及到与第三方进行接口对接,有的会使用WebService的方式,这篇文章主要讲解在.NET 中如何调用WebService。VS2020中调用方式和 Framework 有点不太一样动态调用其实说动态调用也不是太恰当,是用过方法的形式来调用的1.找到’Connected Services’或者新建文件夹Connected Services2.选择其他服务3.输入webserver地址4.实例化类,通过方法调用 /原创 2021-08-01 14:37:38 · 1671 阅读 · 1 评论 -
base64计算文件大小方法(C#和js)
base64文件大小计算有时候图片被base64之后需要计算图片大小,因为被编码后全是字符,计算文件大小可以反序列化成文件之后再获取大小,但是会比较麻烦。简单介绍一种利用base64编码原理计算大小的方法.编码原理要求把3个8位字节(38=24)转化为4个6位的字节(46=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,用0填充,输出字符使用’=’,因此编码后输出的文本末尾可能会出现1或2个’=’Base64编码要求把3个8位字节(38=24)转化为4个6位的翻译 2021-07-24 10:50:15 · 1767 阅读 · 0 评论 -
Topshelf 搭建 Windows 服务
C# Topshelf 搭建 Windows 服务Topshelf 是一个用来部署基于.NET Framework 开发的服务的框架。简化服务创建于部署过程,并且支持控制台应用程序部署为服务。本文基于 .net core 控制台应用程序部署为服务(.net Framework 可用)。第一步:创建名为 TopshelfDemo 的控制台应用程序第二步:通过 Nuget 安装 Topshelf 包第三步:Toshelf 配置,代码并不多下面都有注释using System;using Tops原创 2021-07-18 13:26:57 · 3791 阅读 · 0 评论 -
C#换行 System.Environment.NewLine
C#换行 System.Environment.NewLine原创 2021-07-09 14:47:38 · 564 阅读 · 0 评论 -
并发与并行的区别
学习多线程的时候会遇到一个名词:并发。这是属于操作系统中的词汇,需要了解并发和并行的区别,从网上搜集了几种说法帮助理解。一:并发并发是指一个处理器同时处理多个任务。并行是指多个处理器或者是多核的处理器同时处理多个不同的任务。并发是逻辑上的同时发生(simultaneous),而并行是物理上的同时发生。来个比喻:并发是一个人同时吃三个馒头,而并行是三个人同时吃三个馒头。二:并行并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行。就好像两个人各拿一把铁锨在挖坑,一小转载 2021-07-04 22:07:23 · 250 阅读 · 0 评论 -
.NET中Hangfire快速入门和使用-迷恋自留地
前言:定时任务调度问题,是一个老生常谈的问题。网上有许多定时任务调度的解决方案,对于我而言很早以前主要是使用Window计划和Window服务来做任务定时执行,然后就开始使用定时任务调度框架Quartz.Net。但是却一直没有上手过Hangfire这个自带后台任务调度面板,可以在后台手动执行任务的神奇的任务调度框架。前段时间终于开始对他下手了,通过在网上查阅了一些资料和查看了Hangfire在Github中的demo,终于在我自己的项目中用上了Hangfire。在该篇文章中主要简单介绍一下什么是Hangf原创 2021-07-04 22:01:13 · 9103 阅读 · 3 评论 -
2021-06-29
查询List中是否有重复值updategoodsqtyList.Select(x => x.SupplierGoodsSpecCode).GroupBy(x => x).Where(x => x.Count() > 1).ToList().Select(x => x.Key).ToList()原创 2021-06-29 10:09:59 · 85 阅读 · 0 评论 -
C# Newtonsoft.Json JsonSerializerSettings配置序列化操作
JsonSerializerSettings常用配置整理忽略某些属性默认值的处理空值的处理支持非公共成员日期处理(DateFormatHandling)自定义序列化的字段名称动态决定属性是否序列化枚举值的自定义格式化问题自定义类型转换全局序列化设置指定序列化时Key的处理方式:驼峰样式,默认样式(ContractResolver)序列化循环 引用及处理层数特别 说明:Newtonsoft.Json不依赖.Net Framework,是基于 .Net Standard封装的,仅转载 2021-06-28 19:25:35 · 6747 阅读 · 0 评论 -
C#中实体转换为json串去除空值
{ "aircraftNo": null, "billNo": null, "checkArea": null, "checkCustomsCode": "3104"} 定义:JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.I.转载 2021-06-23 14:02:56 · 743 阅读 · 0 评论 -
ASP.NET Core可视化日志组件使用-LogDashboard
前言首次发现这个组件实在’net9’大佬写的文章里面发现的。经过自己使用是用发现是真的不错,LogDashboard特性:授权访问,自定义日志模型,日志追踪,堆栈查看支持的日志组件:nlog,log4net,serilog支持的数据源:txt,数据库官网地址:https://doc.logdashboard.net/serilog的使用serilog是NET下优秀的日志项目,对NETCore支持友好,扩展丰富。abp框架更是将其做为框架默认的日志组件,logdashboard完全支持seri原创 2021-06-20 17:01:14 · 1968 阅读 · 0 评论 -
C#中IOC容器-Autofac的使用
什么是Ioc把对象的统一创建交给第三方容器来创建Autofac容器初识auto 是一款有优秀的IOC容器:那么如何使用?第三方容器Nuget引入程序包autofac创建containerBuilder注册首先和实现的关系Build一下,得到ConTainer容器用去获取服务实例使用服务代码实现 //构造函数注入 //ContainerBuilder containerBuilder = new ContainerBuil原创 2021-06-07 15:58:03 · 1873 阅读 · 0 评论 -
Net5 自带的 DI
什么是Ioc把对象的统一创建交给第三方容器来创建如何使用内置IOC ServerCollection1.在Starup中的ConfigurServicetion方法中注册服务services.AddSingleton<ITestServiceA, TestServiceA>();--------------- private readonly IServiceProvider _ServiceProvider = null; ITestServiceA testServic原创 2021-06-07 15:53:56 · 272 阅读 · 0 评论 -
C#和sql 中的 四舍五入向下向上取整
c#四舍五入取整Math.Round(3.45, 0, MidpointRounding.AwayFromZero)上取整或下取整Math.Ceiling(3.1)=4; Math.Floor(3.9)=3;Sql 获取向上取整、向下取整、四舍五入取整的实例详解【四舍五入取整截取】select round(54.56,0) 【向下取整截取】SELECT FLOOR(54.56) 【向上取整截取】 SELECT CEILING(13.15)--MSSQL取整函数的翻译 2021-06-05 19:44:14 · 248 阅读 · 0 评论 -
通过NPOI读取 excel指定Sheet 到DataTable
public static DataTable ReadExcelToDataTable(string fileName, string sheetName = null, bool isFirstRowColumn = true) { //定义要返回的datatable对象 DataTable data = new DataTable(); //excel工作表 ISheet sheet =原创 2021-06-02 17:59:19 · 393 阅读 · 0 评论 -
控制台程序发布为windows服务
前言srvany.exe可用于将任何EXE程序作为Windows服务运行。我们可以通过它让我们的程序以SYSTEM账户启动,或者实现随机器启动而自启动,也可以隐藏不必要的窗口,比如说控制台窗口等等。其它废话就不多说了,直接进入正题:部分资源文件来源:https://www.cr173.com/soft/64394.html可下载的程序:1、instsrv.exe2、srvany.exe安装服务批处理文件install.bat@echo offcd /d %~dp0call run-i翻译 2021-05-23 18:35:23 · 436 阅读 · 0 评论 -
C# Linq 的三种去重方式(Distinct)
前言关于C#中默认的Distinct方法在什么情况下才能去重,这个就不用我再多讲,针对集合对象去重默认实现将不再满足,于是乎我们需要自定义实现来解决这个问题,接下来我们详细讲解几种常见去重方案,孰好孰歹自行判之。首先给出我们需要用到的对象,如下:public class Person{ public string Name { get; set; } public int Age { get; set; }}接下来我们添加100万条数据到集合中,如下:转载 2021-05-17 10:51:54 · 22761 阅读 · 4 评论 -
C#计算某一些任务的执行时间(消耗时间)
class Program { static void Main(string[] args) { System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); sw.Start(); for (int i = 0; i < 50000000; i++) {原创 2021-05-17 09:56:31 · 371 阅读 · 0 评论 -
210514随笔记
c#中如何将一个数组拆分多个小数组 int[] data = {1,2,3,4,5,6,7,8,9};int[][] result = Enumerable.Range(0, data.Count() / 3).Select(x => data.Skip(x*3).Take(3).ToArray()).ToArray();sql中添加语句自增create table test(name varchar(20),password int)//添加自增alter table test ad原创 2021-05-14 20:05:18 · 88 阅读 · 0 评论 -
[NET Core] Nuget包发布流程
1.新建一个.NET Core类库2.新增一个方法,并编译项目3.下载Nuget.exe,与刚才新建的类库放在同一目录下下载地址:https://www.nuget.org/downloads4.在Nuget官网注册账号官网地址:https://www.nuget.org/创建一个KeyKey Name 和 Glob Pattern 名称一样就好创建完成后点击copy,保存起来。因为以后无法再次复制密钥!!!5.找到vs对应的开发人员命令提示C:\ProgramData\翻译 2021-05-07 13:18:00 · 786 阅读 · 0 评论 -
C#中Autofac(IoC框架)的使用
1 前置阅读在阅读本文章之前,你需要理解什么是依赖注入依赖注入的目的不是为了解耦,依赖注入是为了控制反转2 简介Autofac与C#语言的结合非常紧密,并学习它非常的简单,也是.NET领域最为流行的IoC框架之一。3 使用首先,将Autofac的NuGet软件包安装到您的应用程序中。Autofac然后,我们通过创建ContainerBuilder来注册组件。var builder = new ContainerBuilder();builder.RegisterType<翻译 2021-04-30 17:06:27 · 5138 阅读 · 1 评论 -
C#学习笔记21年4月第五周
1.DbContextOptionsBuilder不包含UseSqlServer的定义2.The term ‘Update-Database’ is not recognized as the name of a cmdlet…DbContextOptionsBuilder不包含UseSqlServer的定义The term ‘Update-Database’ is not recognized as the name of a cmdlet… Add-Migration 命令问题https原创 2021-04-30 14:23:16 · 269 阅读 · 1 评论 -
【C#基础】Dynamic类型和正确用法
前言Dynamic类型是C#4.0中引入的新类型,它允许其操作掠过编译器类型检查,而在运行时处理。编程语言有时可以划分为静态类型化语言和动态类型化语言。C#和Java经常被认为是静态化类型的语言,而Python、Ruby和JavaScript是动态类型语言。一般而言,动态语言在编译时不会对类型进行检查,而是在运行时识别对象的类型。这种方法有利有弊:代码编写起来更快、更容易,但无法获取编译器错误,只能通过单元测试和其他方法来确保应用正常运行。C#最初是作为纯静态语言创建的,但是C#4添加了一些动态元素,用转载 2021-04-30 13:33:43 · 6180 阅读 · 0 评论 -
C#中使用IMemoryCache实现内存缓存
1 缓存基础知识缓存是实际工作中非常常用的一种提高性能的方法。缓存可以减少生成内容所需的工作,从而显著提高应用程序的性能和可伸缩性。 缓存最适用于不经常更改的数据。 通过缓存,可以比从原始数据源返回的数据的副本速度快得多。2 使用内存缓存(IMemoryCache)首先,我们简单的创建一个控制器,实现一个简单方法,返回当前时间。我们可以看到每次访问这个接口,都可以看到当前时间。[Route("api/[controller]")][ApiController]public class Cach转载 2021-04-24 19:15:36 · 4921 阅读 · 0 评论