C#
文章平均质量分 66
foreverhot1019
这个作者很懒,什么都没留下…
展开
-
Hot Chocolate 构建 GraphQL .Net Core 服务
Hot Chocolate 是 .NET 平台下的一个开源组件库, 您可以使用它创建服务, 它消除了构建成熟的 GraphQL 服务的复杂性, Hot Chocolate 可以连接任何服务或数据源,并创建一个有凝聚力的服务,为您的消费者提供统一的 API。我会在 .NET 应用中使用 Hot Chocolate 组件来构建 GraphQL 服务, 让我们开始吧!原创 2023-02-28 11:01:59 · 679 阅读 · 0 评论 -
System.Text.Json JsonSerializer Source Generate
在.NET 6.0中,我们正在运送一个新的C#源生成器,以帮助提高使用.NET的应用程序的性能。在这篇文章中,我将介绍我们为什么要建立它,它是如何工作的,以及你可以在你的应用程序中体验到什么好处。随着 源生成器的引入,我们现在有几种在.NET中进行JSON序列化的模式可供选择,使用 。现有的模式是由运行时反射支持的,还有两种新的编译时源码生成模式;其中生成器生成优化的序列化逻辑,静态数据访问模型,或者两者都是。在这两种源码生成方案中,生成的工件被直接传递给 ,作为性能优化。下面是每个序列化模型所提供的功能的转载 2022-12-02 10:17:07 · 896 阅读 · 1 评论 -
.Net 7 Native AOT 单文件 无依赖 跨平台
.Net AOT link.exe不是内部或外部命令原创 2022-11-29 12:31:29 · 3599 阅读 · 0 评论 -
Quartz.Net+Microsoft.Extensions.Hosting创建服务
Microsoft.Extensions.Hosting 可以绑定 asp.net core 程序可以是framework 4.6.1 以后的任意应用程序,快速 创建 集 configuration、dependency injection,logging 的应用,自动管理应用 生命周期。最后 通过 sc create reportjob binPath="exePath" 就可以创建服务了。Microsoft.Extensions.Http.Polly 如果需要用HttpClient。原创 2022-11-10 17:58:00 · 803 阅读 · 0 评论 -
C# Snowflake
C# 版 雪花算法参考:GitHub - wzycoding/snowflake原创 2022-08-05 11:55:55 · 330 阅读 · 0 评论 -
Github Copilot AI帮你写代码
使用Github Copilot 根据注释和方法名称,展示给你建议的代码。1.根据函数名称给出代码建议2.根据注释内容给出代码建议,支持中文英文3.多个注释参考:GitHub - github/copilot-docs: Documentation for GitHub Copilot...原创 2022-04-06 19:49:52 · 1076 阅读 · 0 评论 -
.NET 中的 System.IO.Pipelines
I/O 管道 - .NET | Microsoft Docsasync Task ProcessLinesAsync(Socket socket){ var pipe = new Pipe(); Task writing = FillPipeAsync(socket, pipe.Writer); Task reading = ReadPipeAsync(pipe.Reader); await Task.WhenAll(reading, writing);}as转载 2021-12-09 17:53:50 · 543 阅读 · 0 评论 -
Asp.Net Core EntityFrameworkCore localdb 链接本地文件
Database:必须存放在C:\Users\{user}目录下aaa.mdf;AttachDBFilename:D:\Dev\App\App_Data\aaa.mdf(自由存放)"DefaultConnection": "Server=(localdb)\\mssqllocaldb;AttachDBFilename=%DataDirectory%\\aaa.mdf;Trusted_Connection=True;ConnectRetryCount=1",startup 里设置环境变量,Con原创 2021-12-09 17:40:29 · 739 阅读 · 0 评论 -
Entity FrameWork 并发token
前言对过年已经无感,不过还是有很多闲暇时间来学学东西和多陪陪爸妈,这一点是极好的,好了,本节我们来讲讲EntityFramework Core中的并发问题。话题(EntityFramework Core并发)对于并发问题这个话题相信大家并不陌生,当数据量比较大时这个时候我们就需要考虑并发,对于并发涉及到的内容也比较多,在EF Core中我们将并发分为几个小节来陈述,让大家看起来也不太累,也容易接受,我们由浅入深。首先我们看下给出的Blog实体类。 public class Blo转载 2021-05-12 09:12:55 · 187 阅读 · 0 评论 -
Orleans 分布式单线程高并发
程序在运行过程中有时会莫名其妙出现代码的某些约束或者执行结果和理想状况不一样,正常逻辑怎么会出现这样的情况?到底发生了什么?好像见了鬼!瞬间好无助。谁来救救我大多数出现正常逻辑很难解释的时候,我们可能会想到并发问题,因为好像只有并发才会能说服自己。为了验证和解决这个问题,我们可能会尝试一些方案,在并发的情况下我相信很多人都使用过锁,锁确实也能帮忙我们解决问题,不然它干嘛存在。但随着业务逻辑的持续复杂,锁的使用可能无处不在。首先大家都知道锁本身的机制很耗性能;然后锁本身不涉及什么编程模式,所.转载 2021-01-08 11:26:43 · 1537 阅读 · 2 评论 -
Orleans 分布式 计算框架-Actor模型的一种实现
写在前面Orleans是基于Actor模型思想的.NET领域的框架,它提供了一种直接而简单的方法来构建分布式大规模计算应用程序,而无需学习和应用复杂的并发或其他扩展模式。我在2015年下半年开始应用Orleans,当时公司的交易系统采用的架构就是基于Orleans框架的,其展现出来的高性能、高并发以及惊人的稳定性深深地吸引了我,也让我认识到了传统三层无状态架构的缺陷。本文主要关注Orleans的思想基础,Actor模型及其应用。Orleans思想基础:Actor模型传统三层无状态架构的缺陷在转载 2021-01-08 11:23:47 · 624 阅读 · 0 评论 -
C# 数字转abc顺序 数字转Excel列名
private static List<string> Level = new List<string> { "A","B","C","D","E","F","G","H","I","J", "K","L","M","N","O","P","Q","R","S","T", "U","V","W","X","Y","Z", }; /// <su...原创 2020-10-16 15:16:27 · 791 阅读 · 1 评论 -
Jenkins部署 .NetCore到服务器
1. .NetCore项目支持windows 服务参考:https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/windows-service?view=aspnetcore-3.1&tabs=visual-studio添加Nuget包:Microsoft.Extensions.Hosting.WindowsServ...原创 2020-03-25 15:19:06 · 866 阅读 · 0 评论 -
Jenkins .NetCore 自动编译部署windows
1.下载Jenkins/.NetCore SDK,并安装参考:https://blog.csdn.net/qq_18145031/article/details/885337662.创建Jenkins构建 项目构建脚本:1.结束正在运行的.NetCore程序-power shell$processes = @("ConsulApiTestA","Cons...原创 2020-03-20 12:47:05 · 753 阅读 · 0 评论 -
IdentityServer4 结合AspNet.Identity&数据库配置Client数据
//ConfigureServices(IServiceCollection services) 设置 var DbContextConnStr = Configuration.GetConnectionString("DefaultConnection"); var migrationsAssembly = typeof(Startup).Get...原创 2019-12-10 11:03:24 · 625 阅读 · 0 评论 -
.Net Core 2.2 解密 Cookie Authentication-Token
参考:https://stackoverflow.com/questions/42842511/how-to-manually-decrypt-an-asp-net-core-authentication-cookie/42857830#42857830//设置Indetityservices.AddIdentity<ApplicationUser, IdentityRole>...原创 2019-10-16 14:06:05 · 748 阅读 · 0 评论 -
IIS 多进程+负载均衡,配置
1:设置各服务器 MachineKey一致2:设置各服务器,网站ID必须一致ID不一致,会造成登录失败,Session失效等问题(最大工作进程数为1时,不受影响)3:设置各服务器,网站目录,网站名称,网站应用程序池名称,最好一致4:设置 应用程序池 最大工作进程数和CPU核数一致...原创 2019-07-04 13:29:28 · 1538 阅读 · 0 评论 -
C# MVC5 使用 node.js + WebPack 打包JS
参考:https://www.slightedgecoder.com/2017/05/22/setting-es6-environment-asp-net-mvc-5/创建 node 初始文件 package.jsonnpm init -y安装 需要的包npm install --save-dev webpack babel-core babel-loader babel-pol...转载 2019-07-19 17:32:55 · 583 阅读 · 0 评论 -
海康 设备 发现(SADPTool原理)
SADPTool原理:向239.255.255.250:37020发送基于ONVIF协议的 udp 组播,设备会监听 239.255.255.250:37020,收到指令,会向 发送组播的机器,返回设备信息,也会向239.255.255.250:37020 发送 设备信息的 组播。 发送 报文(Uuid是Guid,每次都生成一个新的,用同一个,我没有试过,可不可以)<?xml...原创 2018-10-23 08:36:05 · 23311 阅读 · 5 评论 -
C# 泛型方法Where 约束
where(泛型类型约束)定义:在定义泛型的时候,我们可以使用 where 限制参数的范围。使用:在使用泛型的时候,你必须尊守 where 限制参数的范围,否则编译不会通过。 六种类型的约束:T:类(类型参数必须是引用类型;这一点也适用于任何类、接口、委托或数组类型。) class MyClass where T : class///约束T参数必须为“引用 类型{ }”转载 2018-01-19 10:24:58 · 4915 阅读 · 0 评论 -
C# 判断文件流编码格式
参考:https://www.cnblogs.com/cyq1162/p/9183424.html参考:https://cloud.tencent.com/developer/article/1343240参考:https://cloud.tencent.com/developer/article/1342448ascii<gb2312<gbk<gb18030,符合中...转载 2019-07-12 22:34:28 · 2059 阅读 · 0 评论 -
C# web.config 加密
--参考:https://blog.darkthread.net/blog/mechinekey-hack-and-protection/--参考:https://www.cnblogs.com/txwsh1/archive/2007/05/16/748993.html--参考:https://cloud.tencent.com/developer/article/1028328参考:htt...原创 2019-07-03 10:32:20 · 287 阅读 · 0 评论 -
.Net 中HashTable,HashMap 和 Dictionary《key,value》和List《T》和DataTable的比较
参考资料http://www.cnblogs.com/MichaelYin/archive/2011/02/14/1954724.htmlhttp://zhidao.baidu.com/link?url=DonFgOvFddsAVKUjY4WBwCgE6cO4jLjapPS14Hb3iobC3f6QwYB-3R6OQkRArowg2vzxLnTiujkHss6iy2wFDqhttp://www.c...转载 2018-02-22 11:16:53 · 1014 阅读 · 0 评论 -
C# 正确理解 async 与 await
msdn文档里提到的不会创建新线程是指async函数本身不会直接在新线程中运行。在 MVC 模式下:异步action执行到await之前都是再loop线程,loop线程池的线程数是有限的,在iis线程池的高级设置(queue length)里可以设置,一旦执行到await之后,就会开启另一个线程去执行await的任务,同时,loop线程回池去接收其他请求,当await执行完了又会从loop线程池拿原创 2018-01-19 14:57:00 · 2168 阅读 · 0 评论 -
C# 动态Expression
/// /// 扩展IQueryable方法 /// 可以直接.出来 /// /// /// /// /// public static IQueryable GetTop(this IQueryable source, Expression> Orde原创 2018-01-19 10:26:39 · 1968 阅读 · 0 评论 -
C# EntityFrameWork 自动更新缓存内容
using AirOut.Web.Extensions;using AirOut.Web.Models;using System;using System.Collections.Generic;using System.Configuration;using System.Linq;using System.Linq.Expressions;using System.Reflection;usi原创 2018-01-18 15:38:30 · 2240 阅读 · 0 评论 -
C# 栈和堆
线程堆栈:简称栈 Stack托管堆: 简称堆 Heap使用.Net框架开发程序的时候,我们无需关心内存分配问题,因为有GC这个大管家给我们料理一切。如果我们写出如下两段代码:代码段1: public int AddFive( int pValue){int result;result = pValue + 5 ;return result;} 线程堆栈:简称栈 Stack托管堆: 简称堆 Heap转载 2018-01-18 11:16:10 · 323 阅读 · 0 评论 -
C# 中 struct 固定长度(Socket报文头规范)
[MarshalAs(UnmanagedType.I4)]此属性标识 int类型 长度为4字节int有好几种:Int16 Int32 Int64意义同名,分别占16位,32位,64位8位一字节,所以分别占2字节,4字节,8字节C#对整数做了基元类型:short映射Int16int映射Int32long映射Int64int即Int32即:4字节//消息结构体 [Serializable]原创 2018-01-18 10:40:16 · 3097 阅读 · 0 评论 -
C# this关键字 使用
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace AppConsole{ /// /// 普通用户 /// public class User { /// /// 全局变量转载 2018-01-18 09:53:46 · 251 阅读 · 0 评论 -
C# MVC5 BundleConfig
注册在Global 里 BundleConfig.RegisterBundles(BundleTable.Bundles); BundleConfig //默认情况Debug不会开启捆绑,正式环境会自动捆绑(system.web-compilation-debug="true") //(打包easyui.min.js会报错) Bun...原创 2018-07-03 11:10:12 · 812 阅读 · 0 评论 -
.Net C# XML XmlSerializer 总结
//数据类节点 [Serializable] [XmlRoot("SQB_HEAD")] //输出节点带命名空间 //[XmlRoot(ElementName = "SQB_HEAD", Namespace = "http://www.w3.org/2001/XMLSchema-instance")] public ...原创 2018-06-28 09:31:40 · 2078 阅读 · 0 评论 -
C# MVC +Redis+RedisSessionProvider +Owin 实现真正的 分布式
1.首先 Nuget 安装Newtonsoft.JsonRedisSessionProvider替换成Microsoft.Web.Redis.RedisSessionStateProvider+StackExchange.Redis.StrongName这个更好RedisSessionProvider有时候会莫名其妙的没有插入redis-SessionStackExchan...原创 2019-06-27 16:11:05 · 894 阅读 · 0 评论 -
C# MVC 多语言
基本流程:1.route增加一个 RouteHandler,设置区域文化。2.扩展 DataAnnotationsModelMetadataProvider 适配器(Model的一些特征进行描述)return View() 时 会触发ModelMetadataProvider参考:https://www.cnblogs.com/ywsoftware/p/5577000.html...原创 2019-05-31 11:01:38 · 734 阅读 · 0 评论 -
Entity Framework 迁移命令
好久没有在博客园更新博客了,如今都换了新公司。前段时间写了关于EF迁移的文档,今天拿出来作为这个系列的一篇吧。一、Entity Framework 迁移命令(get-help EntityFramework)Enable-Migrations 启用迁移Add-Migration 为挂起的Model变化添加迁移脚本Update-Database 将挂起的迁移更新到数据库Get-...转载 2019-01-14 10:14:02 · 1077 阅读 · 0 评论 -
C# 获取 ARP 映射
/// <summary> /// 引入windowsAPI /// </summary> public class LibArp { //用于转换ip地址 [DllImport("ws2_32.dll")] pub...转载 2018-10-24 16:11:17 · 1626 阅读 · 0 评论 -
.Net MVC Validation 验证Model
1.手动验证指定Model只能单个Model 验证using System.ComponentModel.DataAnnotations;var ArrValidation = new List<ValidationResult>();var isValid = Validator.TryValidateObject(ArrCusBusInfo[0], new Vali...原创 2018-09-27 15:16:18 · 560 阅读 · 0 评论 -
.Net MVC Validation之Remote 模式
CusBusInfo.cs [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Id { get; set; } [Display(Name = "业务伙伴代码")] [Required(ErrorMessage = "业务伙...原创 2018-09-27 14:43:44 · 380 阅读 · 0 评论 -
.net MVC 分析器错误
分析器错误“/”应用程序中的服务器错误。<%@ Application Codebehind="Global.asax.cs" Inherits="erfang.web.Global" Language="C#" %>解决方式1.清理工程,重新生成如果1方法不行,请尝试2方法2.删除 bin 下面所有文件,重新生成...原创 2018-07-27 16:07:08 · 896 阅读 · 0 评论 -
Entity FrameWork 6.13 获取 ef 生成的 SQL 语句
在 DbContext 里 全局 记录 SQL 日志 :protected override void OnModelCreating(DbModelBuilder modelBuilder){ Database.Log = (query)=> Debug.Write(query);}获取 IQueryable<T>/Commond 产生的SQL:...原创 2018-07-25 10:39:20 · 2567 阅读 · 0 评论 -
解决:无法将“Add-Migration”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次 1、输入的中划线“-”格式不对,检查是
解决:无法将“Add-Migration”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次1、输入的中划线“-”格式不对,检查是否为全角状态下输入,误输入了下划线“_",或是前后有空格;2、没有引用EntityFramework命令,请执行如下名称(Import-Module 项目路径\packa转载 2018-01-23 14:56:14 · 10196 阅读 · 1 评论