摘要:
基于封装的原则,API 的设计者会将部分成员(属性、字段、方法等)隐藏以保证健壮性。但总有需要直接访问这些私有成员的情况。 为了访问一个类型的私有成员,除了更改 API 设计还有就是使用反射技术: public class MyApi { public MyApi() { _createdAt = 阅读全文
摘要:
所建的每一个类文件或者接口文件都需要标注下作者姓名以及类的用途。Visual Studio给我们提供了模板注释的功能来自动帮我们生成类似的注释代码。 看效果: 首先定位到你的VS的安装目录:C:\Program Files (x86)\Microsoft Visual Studio\2019\Com 阅读全文
摘要:
转:https://www.cnblogs.com/yilezhu/p/9926078.html 在本文中,我将带着大家一步一步的通过图文的形式来演示如何在Visual Studio Code中进行.NET Core程序的开发,测试以及调试。尽管Visual Studio Code的部分功能还达不到 阅读全文
摘要:
内容协商 客户端再请求头Accept字段中指定什么样的MIME类型,WebApi服务端就返回对应的MIME类型(响应头的中Content-Type就是Accept中指定的MIME类型)。 而现实状况是,Web API服务端能返回什么MIME类型的响应类型取决于有没有对应这个MIME类型的MediaT 阅读全文
摘要:
EasyNetQ.Hosepipe是EasyNetQ队列管理工具。用来取回队列中的消息并重新发布这些消息。还可以用它来检测错误队列,并重试发布消息。 用法 EasyNetQ.Hosepipe.exe <command> [<option:value> ..] 命令 dump 转存队列中的所有消息到一 阅读全文
摘要:
命令流程图 常用命令 git checkout -- 文件名 # 撤销工作区改动 git reset HEAD 文件名 # 清空暂存区 命令详解 查看命令 gitk --all --windows中图形显示分支 git status --查看当前项目工作区、暂存区状态 git log --查看当前分 阅读全文
摘要:
List数据类型 它是一个双向链表,支持左进、左出、右进、右出,所以它即可以充当队列使用,也可以充当栈使用。 (1). 队列:先进先出, 可以利用List左进右出,或者右进左出(ListLeftPush和ListRightPop配合 、 ListRightPush和ListLeftPop配合) (2 阅读全文
摘要:
SQL执行频率 SHOW GLOBAL STATUS LIKE 'Com_______' 结果如下: Com_insert:插入sql执行次数 Com_delete:删除sql执行次数 Com_update:更新sql执行次数 Com_select:查询sql执行次数 insert优化 批量插入 插 阅读全文
摘要:
管道处理器 管道中包含多个处理器,管道中具体的处理逻辑取决于处理器。可以在创建管道时指定处理器: PUT _ingest/pipeline/test_pipeline { "processors": [ { "set": { "field": "des", "value": "管道默认数据" } } 阅读全文
摘要:
# 摄取节点(ingest) ES集群中存在一个摄取节点,在数据保存到文档索引之前,我们可能需要对文档进行预处理,而摄取节点会拦截这些请求,根据需要将文档中的内容进行处理然后传递回索引或者API中。 例如,您可以使用管道来移除字段、从文本中提取值以及丰富数据。 #### 摄取节点的配置: 默认配置下 阅读全文
摘要:
为了能够支持消息版本控制,你需要确保这个必要的组件已配置。最简单的实现是这样的: var bus = RabbitHutch.CreateBus("host=localhost", services => services.EnableMessageVersioning()); 一旦消息版本功能启动 阅读全文
摘要:
npm(Node Package Manager) npm 是nodejs的包管理工具,主要功能就是安装、卸载、更新、查看、搜索、发布node的包。它的一个很重要的作用就是:将开发者从繁琐的包管理工作(版本、依赖等)中解放出来,更加专注于功能的开发。 node包的安装分两种:本地安装、全局安装。 n 阅读全文
摘要:
属性替换: public static void ReplaceProperty(JObject jsonObject, JObject replaceObject) { if (jsonObject != null && replaceObject != null) { foreach (JPro 阅读全文
摘要:
先看效果 appsettings.json { "Plugin1": { "Test1": "11111111" }, "Plugin2": { "Test2": "22222222" } } 为每个节点创建Option public class Service1Options { public s 阅读全文
摘要:
执行子模板 Main.cst <%@ Template Language="C#" TargetLanguage="Text" %> <%@ Assembly Name="SchemaExplorer" %> <%@ Import Namespace="SchemaExplorer" %> <%@ 阅读全文
摘要:
CodeTemplate(代码模板对象) 模板继承此对象 //可以重载这个方法设置模板输出到文件的名称。否则CodeSmith将基于模板名称和TargetLanguage设置它的文件名。 public virtual void GetFileName() //Render方法是在模版执行完成进行模版 阅读全文
摘要:
属性简介 即生成代码需要的输入值变量 <%@ Property Name="NameSpace" Type="String" Category="Context" Description="The namespace to use for this class" %> 加了属性后点生成,在CodeS 阅读全文
摘要:
下载: https://code.visualstudio.com/ 安装中文界面: vscode安装完后默认是英文界面,需要安装中文插件。如果想切换回英文界面,同样是一下步骤 使用 Ctrl + Shift + P 打开命令界面 输入 display 选中 Configure Display La 阅读全文
摘要:
转:https://cloud.tencent.com/developer/article/1341303 命令行参数解析想必是每一个命令行程序都难以避开的工程。这工程可小可大,但每次都写始终是在浪费时间。而且,不同人实现也千差万别,使得不同的命令行程序命令参数传入的体验总有差异。 于是安利一款命令 阅读全文
摘要:
NPOI简介 NPOI就是POI的.NET版本,NPOI能够帮助我们在没有安装微软Office的情况下读写Office文件,如xls, doc, ppt等。 NPOI源码 https://github.com/nissl-lab/npoi Nuget install-package NPOI 入门 阅读全文
摘要:
介绍 当Elasticsearch在文档中检测到新字段时,会自动确定字段的数据类型,并自动把新字段添加到映射的过程称为动态映射。 如果启用了动态字段映射,Elasticsearch采用一些规则来确定JSON字段对应的数据类型,规则包括动态字段映射(Dynamic field mappings)和动态 阅读全文
摘要:
模块中可以包含一下内容: Startup,可以注册模块使用的服务和中间件 静态资源 控制器、视图 模块支持Startup 要实现功能的模块化,首先模块要可以注册自己的服务和中间件,也就是每个模块要有独立的Startup 先实现一个简单的方案,将每个模块的Startup独立 源码:https://gi 阅读全文
摘要:
Main方法: static async Task Main(string[] args) { Type personType = typeof(Person); var person = Activator.CreateInstance(personType); //调用同步方法,如果有同名方法, 阅读全文
摘要:
什么是正则表达式 很可能你使用过Windows/Dos下用于文件查找的通配符(wildcard),也就是和?。如果你想查找某个目录下的所有的Word文档的话,你会搜索.doc。在这里,*会被解释成任意的字符串。和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的 阅读全文
摘要:
介绍 类似于XPath在xml文档中的定位,JsonPath表达式通常是用来路径检索或设置Json的。其表达式可以接受“dot–notation”和“bracket–notation”格式,例如$.store.book[0].title、$[‘store’][‘book’][0][‘title’] 阅读全文
摘要:
概念 多租户软件架构就是在同一个系统实例上运行不同用户,能做到应用程序共享,服务自治?,并且还能做到数据互相隔离的软件架构思想。 需求 公司有多个集群需要访问配置中心项目,不同集群访问到的数据可能不同,所以每个租户一个独立的数据库,但是共用一个配置中心项目。 开始 解析租户信息 可以通过域名、URL 阅读全文
摘要:
简介 DotLiquid是流行的Liquid模板引擎的.NET实现。 官网:http://dotliquidmarkup.org/ 语法:https://shopify.github.io/liquid/ 源码:https://github.com/dotliquid/dotliquid 简单案例 阅读全文
摘要:
参考: https://github.com/stefanprodan/AspNetCoreRateLimit/wiki https://www.cnblogs.com/EminemJK/p/12720691.html (使用Redis缓存) 简介 在网站或API应用中,为了防止恶意攻击,通常希望屏 阅读全文
摘要:
公司的产品一直紧跟 .net core 3.0 preview 不断升级, 部署到 Linux 服务器后, 偶尔会出现某个进程CPU占用100%. 由于服务部署在云上, 不能使用远程调试; 在局域网内的Linux 服务器 或 Windows开发机上又不能重现这个问题, 联想到Java的jstack, 阅读全文
摘要:
介绍 DiagnosticSource它本身是一个基于发布订阅模式的工作模式,由于它本身的实现方式是异步的,所以不仅仅可以把它用到日志上,还可以用它实现异步操作,或者用它简化实现发布订阅的功能。DiagnosticSource本身是一个抽象类,我们最常用到的是它的子类DiagnosticListen 阅读全文
摘要:
使用场景 用于解决复杂业务问题,如:自定义字段、自定义评分、自定义更新、自定义聚合分析等 缺点 性能问题。官方文档性能优化中明确指出使用脚本会导致性能低; 如非必要,不要使用脚本,尽量用其他方式替换,如下: 使用脚本进行前缀查询: 1POST seats/_search 2{ 3 "query": 阅读全文
摘要:
参考: https://www.cnblogs.com/zyh000/p/10253796.html 概念 ADO.NET简单理解就是,微软定义了一堆关于操作数据源的接口和类,是C#语言访问数据源的一种方式,ADO.NET 类位于 System.Data.dll 常用对象 Connection → 阅读全文
摘要:
List是线程不安全的,通过一个数组存储数据,当容量达到数组上限时,创建一个新数组,因此存在线程安全问题 SafeList是在做增删改操作时返回一个新的ReadonlyList,所以不存在线程安全问题 /// <summary> /// SafeList is mutable, but it use 阅读全文
摘要:
自定义Requirement案例 单个Handler public class MinimumAgeRequirement : AuthorizationHandler<NameAuthorizationRequirement>, IAuthorizationRequirement { public 阅读全文
摘要:
同步,异步 和 阻塞,非阻塞之间的区别? 同步,异步,是描述被调用方的。阻塞,非阻塞,是描述调用方的。 同步不一定阻塞,异步也不一定非阻塞。没有必然关系。 举个简单的例子: 1 老张把水壶放到火上,一直在水壶旁等着水开。(同步阻塞) 2 老张把水壶放到火上,去客厅看电视,时不时去厨房看看水开没有。( 阅读全文
摘要:
Shell Shell :可以理解为后台运行的程序(命令解释器),作用是用来解析你输入的命令,搜索环境变量,找到命令文件,运行命令文件。 Shell 是一个命令解释器,它在操作系统最外层,负责与用户对话。shell保存在/etc/shells目录中 Shell 既是一种脚本编程语言,也是一个连接内核 阅读全文
摘要:
CAP集成到项目 添加Package 数据库使用Sqlserver,消息队列使用RabbitMQ <PackageReference Include="DotNetCore.CAP" Version="3.1.2" /> <PackageReference Include="DotNetCore.C 阅读全文
摘要:
简介 NuGet包Microsoft.AspNetCore.Diagnostics中提供了几个与异常处理相关的中间件。当ASP.NET Core应用在处理请求过程中出现错误时,中间件捕获异常,并将错误信息返回给客户端。 需要注意的是,与“异常处理”有关的中间件,一定要尽早添加,这样,它可以最大限度的 阅读全文
摘要:
public interface IServiceLocator { object GetService(Type type); } public class ServiceLocator : IServiceLocator { private readonly ILifetimeScope _li 阅读全文
摘要:
简介 对象池化技术可以显著地提升性能,尤其是当对象的初始化过程代价较大或者频率较高。 它是一种基于使用预先分配资源集合的性能优化思想,简单说对象池就是对象的容器,当一个对象被激活时,便被从池中取出,当对象被停用时,它又被放回池中。 在一些对性能比较敏感的应用中,我们可以通过对象复用的方式避免垃圾对象 阅读全文