上一页 1 2 3 4 5 6 7 8 9 10 ··· 12 下一页
摘要: 属性 程序集特性 .NET Core 2.1之前程序集特性存储在AssemblyInfo 文件中,2.1开始程序集特性移到MSBuild属性中 | 属性 | Property | 要禁用的属性 | | | | | | AssemblyCompanyAttribute | Company | Gene 阅读全文
posted @ 2020-11-07 17:07 .Neterr 阅读(109) 评论(0) 推荐(0)
摘要: IFileProvider File Providers是文件系统之上的一层抽象。它的主要接口是IFileProvider,IFileProvider对象为我们构建了一个具有层次化目录结构的文件系统。由于IFileProvider是一个接口,所以由它构建的是一个抽象化的文件系统,这里所谓的目录和文件 阅读全文
posted @ 2020-11-07 12:52 .Neterr 阅读(725) 评论(0) 推荐(0)
摘要: 先看效果: string js = @"var a=1 alert(a);//注释1 alert(a);/*注释2*/"; string result = PackBus.PackJavascript(js).Replace("\n", "\r\n"); result: eval(function( 阅读全文
posted @ 2020-11-02 14:32 .Neterr 阅读(322) 评论(0) 推荐(0)
摘要: 默认情况下,生成项目时会把Views的视图文件编译成dll*.Views.dll 同时我们也看不到Views文件夹,如果有频繁修改视图内容的需求,这样就很不方便 我们可以将视图预编译改为运行时编译 1、添加Nuget: <PackageReference Include="Microsoft.Asp 阅读全文
posted @ 2020-11-02 13:20 .Neterr 阅读(343) 评论(0) 推荐(0)
摘要: 源代码的动态编译问题,我们知道这个可以利用Roslyn来解决。 实现一个编译助手类,它的Compile方法将会对参数sourceCode提供的源代码进行编译。该方法返回源代码动态编译生成的程序集,它的第二个参数代表引用的程序集。 添加Nuget包: <PackageReference Include 阅读全文
posted @ 2020-10-30 16:24 .Neterr 阅读(2092) 评论(0) 推荐(1)
摘要: WebMarkupMin可以做什么: 运行时最小化html、css、js(去除空格、注释...) 对HTTP启用压缩(GZip、Deflate、Brotli..) 使用步骤: 添加Nuget包: <PackageReference Include="WebMarkupMin.AspNet.Brotl 阅读全文
posted @ 2020-10-29 13:56 .Neterr 阅读(588) 评论(0) 推荐(1)
摘要: 一、前言 源码 1、最近一直在看项目性能优化方式,俗话说的好项目优化第一步那当然是添加缓存,我们的项目之所以卡的和鬼一样,要么就是你的代码循环查询数据库(这个之前在我们的项目中经常出现,现在慢慢在修正)或者代码做了很多不该做的事情。这个时候就可以引入我们的缓存了。(只要你的代码不是写的特别差,比如之 阅读全文
posted @ 2020-10-28 16:28 .Neterr 阅读(288) 评论(0) 推荐(0)
摘要: 今天在工作上遇到这么个需求:需要获取对象上所有属性的值,但并事先并不知道对象的类型。 我的第一反应就是使用反射,但是这个操作会进行多次,大量的反射肯定会有性能影响。虽然对我这个项目无关紧要,但我还是选择了另外一种解决方案:构建表达式树,再生成委托,然后将委托缓存在字典里。代码如下: 首先构建表达式树 阅读全文
posted @ 2020-10-25 17:14 .Neterr 阅读(324) 评论(0) 推荐(0)
摘要: 介绍 ContractResolver能做什么: 为属性添加一些序列化设置 自定义属性名 有选择的序列化属性 CamelCasePropertyNamesContractResolver Newtonsoft提供了CamelCasePropertyNamesContractResolver,继承自C 阅读全文
posted @ 2020-10-25 11:34 .Neterr 阅读(4288) 评论(0) 推荐(3)
摘要: 通常的序列化与反序列化中的json结构与c#中的类模型结构是相对应的,我们是否可以在序列化一个对象时候,让我们json的数据结构能按照自己的意愿,而不必与该对象的数据结构一样呢?,比如说,一个对象,只有一个名为"ID"的int类型的属性,值为1,如果序列化该对象,则能得到json:{"ID":1}, 阅读全文
posted @ 2020-10-23 23:57 .Neterr 阅读(8441) 评论(0) 推荐(0)
摘要: 一、JSON使用JsonPropertyAttribute重命名属性名 [JsonProperty("name")] 二、JSON使用JsonPropertyAttribute序列化升序排序属性 [JsonProperty(Order=4)] 三、反序列化属性时,Required指定属性性质 指定其 阅读全文
posted @ 2020-10-23 22:50 .Neterr 阅读(2219) 评论(0) 推荐(0)
摘要: 序列化设置的几种方式: 全局序列化:(在之后使用JsonConvert进行序列化时都有效) JsonConvert.DefaultSettings = new Func<JsonSerializerSettings>(() => { Newtonsoft.Json.JsonSerializerSet 阅读全文
posted @ 2020-10-22 22:43 .Neterr 阅读(454) 评论(0) 推荐(0)
摘要: Task(任务) 任务是 MSBuild 真正要执行的东西,例如编译、打包和下载文件等等任务,可以由我们自行用 C# 或者 VB.NET 等语言实现。 关于任务的编写,我们将在以后进行介绍,这里只简单介绍一下任务的使用。 MSBuild 也内置了很多任务,例如 Message 用来打印信息、Warn 阅读全文
posted @ 2020-10-17 17:48 .Neterr 阅读(510) 评论(0) 推荐(0)
摘要: MSBuild MSBuild是在.NET 2.0中引入的针对Visual Studio的构建系统。它可以执行构建脚本,完成各种Task——最主要的是把.NET项目编译成可执行文件或者DLL。从技术角度来说,制作EXE或者DLL的重要工作是由编译器(csc,vbc等等)完成的。MSBuild会从内部 阅读全文
posted @ 2020-10-17 16:16 .Neterr 阅读(1183) 评论(0) 推荐(1)
摘要: IContainer是通过ContainerBuilder.Build()方法创建的,由于Autofac有限制,Build()方法只能调用一次,所以我们不能直接通过Build()创建IContainer。 Autofac提供了以下方式可以获取Icontainer: public class Glob 阅读全文
posted @ 2020-10-14 15:00 .Neterr 阅读(1303) 评论(0) 推荐(0)
摘要: 如果publish、Subscribe所用的Message不是同一类型如何处理? 替换组件ITypeNameSerializer 1、下面这个类是从Easynetq源码中拷出来的,主要包含两个方法Serialize、Deserialize 由于这两个方法不是虚方法,所以不能重写,我们把源码拷出来,把 阅读全文
posted @ 2020-10-14 13:34 .Neterr 阅读(1147) 评论(0) 推荐(0)
摘要: AsnyncLocal与ThreadLocal都是存储线程上下文的变量,但是,在实际使用过程中两者又有区别主要的表现在: AsyncLocal变量可以在父子线程中传递,创建子线程时父线程会将自己的AsyncLocal类型的上下文变量赋值到子线程中,但是,当子线程改变线程上下文中AsnycLocal变 阅读全文
posted @ 2020-10-10 16:18 .Neterr 阅读(532) 评论(0) 推荐(0)
摘要: #介绍: Dapper.Common是基于Dapper的Lambda扩展,遵循Linq语法规则,上手快,支持Mysql,Sqlserver(目前只实现了这两个数据,实现其他数据库也很轻松),支持单表,多表,自定义函数等功能。 开源地址:https://github.com/1448376744/Da 阅读全文
posted @ 2020-09-26 22:03 .Neterr 阅读(523) 评论(0) 推荐(0)
摘要: API 版本控制可以采用不同的方式进行控制: (1)在 URL 中追加版本或作为查询字符串参数, (2)通过自定义标头和通过接受标头 在这篇文章中, 让我们来看看如何支持多个版本的 ASP.NET Core Web API。 一、创建asp.net core webapi 项目,引用NuGet包:I 阅读全文
posted @ 2020-09-25 18:16 .Neterr 阅读(455) 评论(0) 推荐(0)
摘要: Pod介绍: 自主式Pod:不被控制器管理的Pod,一旦死亡不能重启 控制器管理的Pod Pod的生命周期: Pause容器: 当一个Pod被创建,Pause是第一个启动的容器,负责网络和数据卷初始化,我们不能操作 每个Pod中有一个容器pause,其他容器共用这个容器的网络和存储卷,所以Pod中的 阅读全文
posted @ 2020-09-19 15:35 .Neterr 阅读(183) 评论(0) 推荐(0)
摘要: 创建容器默认使用docker0网络,我们创建一个自定义网络 docker0的特点是容器之间只能通过ip访问,不能通过容器名访问,除非使用--link。自定义网络可以通过容器名访问 单向通信 --link 网络模式 bridge:使用桥接方式连接网络(默认) none:不配置网络 host:和主机共享 阅读全文
posted @ 2020-09-18 15:09 .Neterr 阅读(190) 评论(0) 推荐(0)
摘要: mysqldump 介绍 mysqldump 是 MySQL 自带的逻辑备份工具。 它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的insert 语句,当我们需要还原这些数据时,只要执行这些 insert 语句,即可将对应的数据还原。 选项 实例 阅读全文
posted @ 2020-09-18 14:38 .Neterr 阅读(191) 评论(0) 推荐(0)
摘要: 介绍 INFORMATION_SCHEMA提供了访问数据库元数据的方式。 元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。 有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。 操作: 删除mysql数据库某一张主键表的所有外键关系 SELECT CONCAT('a 阅读全文
posted @ 2020-09-18 13:56 .Neterr 阅读(187) 评论(0) 推荐(0)
摘要: 如果你的任务是需要基于日历每天定时运行,那你就应该使用计划任务触发器,例如每周五中午12:00执行任务,或者每天早上9点执行任务。 Cron表达式: 计划任务表达式是一个字符串,它又7个子字符串组合而成,这7个子字符串有空格符间隔,分别表示计划任务触发时间的7个部分 第一位 – 触发时间的秒数 第二 阅读全文
posted @ 2020-09-18 10:22 .Neterr 阅读(445) 评论(0) 推荐(0)
摘要: 触发器分为:简单触发器(Simple Trigger)、触发器(Cron Trigger),一个触发器只能绑定一个任务 通用触发器属性: JobKey – 当前触发器绑定任务的唯一标识符 StartTimeUtc – 触发器的生效开始时间 EndTimeUtc – 触发器的生效结束时间 触发器优先级 阅读全文
posted @ 2020-09-17 21:02 .Neterr 阅读(607) 评论(0) 推荐(0)
摘要: 用于将Type和Type名称相互转化 public class TypeNameSerializer { private readonly ConcurrentDictionary<Type, string> serializedTypes = new ConcurrentDictionary<Ty 阅读全文
posted @ 2020-09-16 18:50 .Neterr 阅读(228) 评论(0) 推荐(0)
摘要: Demo1、可以当做缓存的key使用 当需要一组参数的值作为缓存key,通常会使用如下方式: string keyName = arg1+"_"+arg2+"_"+arg3; 此时可以使用struct作为缓存key,只要struct所有属性相同,就会被认为是相同值。不再需要自己拼接缓存key str 阅读全文
posted @ 2020-09-16 17:03 .Neterr 阅读(286) 评论(1) 推荐(0)
摘要: String类型 Api (1).StringSet:写入数据,如果数据已经存在,则覆盖;可以一次性存入1个key-value,也可以一次性存入多个Key-value集合,并且可以设置其过期时间。 (2).StringGet:读取数据,可以一次性读取一个key的value,也可以一次性读取多个key 阅读全文
posted @ 2020-09-14 13:36 .Neterr 阅读(715) 评论(0) 推荐(0)
摘要: 简介 在ASP.NET 4.X中,我们通常使用 log4net, NLog 等来记录日志,但是当我们引用的一些第三方类库使用不同的日志框架时,就比较混乱了。而在 ASP.Net Core 中内置了日志系统,并提供了一个统一的日志接口,ASP.Net Core 系统以及其它第三方类库等都使用这个日志接 阅读全文
posted @ 2020-09-12 16:58 .Neterr 阅读(840) 评论(0) 推荐(0)
摘要: Quartz.net: 定时执行框架,几乎可以执行所有触发器类型的定时任务,非常灵活。 基本概念: IScheduler:任务调度器,相当于一个大的容器。调度器通常在应用程序启动时创建,一个应用程序实例通常只需要一个调度器即可。 IJob:工作 Trigger:触发器,job和trigger的关系是 阅读全文
posted @ 2020-09-10 18:55 .Neterr 阅读(349) 评论(0) 推荐(0)
摘要: # 连接对象ConnectionMultiplexer `ConnectionMultiplexer`是`StackExchange.Redis`的核心对象,`ConnectionMultiplexer` 应被多个调用之间共享使用。不需要为每个操作创建一个 `ConnectionMultiplexe 阅读全文
posted @ 2020-09-09 16:08 .Neterr 阅读(2731) 评论(0) 推荐(0)
摘要: Assert做什么? Assert基于代码的返回值、对象的最终状态、事件是否发生等情况来评估测试的结果。Assert的结果可能是Pass或者Fail。如果所有的asserts都pass了,那么整个测试就pass了;如果有任何assert fail了,那么测试就fail了。 xUnit提供了以下类型的 阅读全文
posted @ 2020-09-08 18:15 .Neterr 阅读(229) 评论(0) 推荐(0)
摘要: 步骤: 创建Xunit测试项目 运行测试项目后,菜单栏会出现“测试”,测试-窗口-测试资源管理器 进入测试资源管理器后,点击全部运行即可 测试方法属性标签: Fact: [Fact]用于无参测试方法 [Fact] public void FailingTest() { Assert.Equal(5, 阅读全文
posted @ 2020-09-08 17:05 .Neterr 阅读(387) 评论(0) 推荐(0)
摘要: 简介 Async/Await在.Net Core中真的是无处不在,到处都是异步操作,那为什么要用?有什么作用?别人说能提升性能? async/await可以让我们写出和同步代码一样简洁的异步代码 这里从理论,实践,原理一个个解开这些疑问。 语法 async关键字必须在返回类型之前,async修饰的方 阅读全文
posted @ 2020-09-08 10:48 .Neterr 阅读(380) 评论(0) 推荐(0)
摘要: 1.为什么要保证顺序 消息队列中的若干消息如果是对同一个数据进行操作,这些操作具有前后的关系,必须要按前后的顺序执行,否则就会造成数据异常。举例: 比如通过mysql binlog进行两个数据库的数据同步,由于对数据库的数据操作是具有顺序性的,如果操作顺序搞反,就会造成不可估量的错误。比如数据库对一 阅读全文
posted @ 2020-09-07 11:12 .Neterr 阅读(440) 评论(0) 推荐(0)
摘要: EasyNetQ是一个由小组件组成的库。当你写如下代码: var bus = RabbitHutch.CreateBus("host=localhost"); 静态方法CreateBus通过IoC容器组装这些组件,CreateBus的一个重载允许你访问组件注册,这样您就可以提供您自己版本的EasyN 阅读全文
posted @ 2020-09-06 17:25 .Neterr 阅读(276) 评论(0) 推荐(0)
摘要: EasyNetQ的使命是为基于RabbitMQ的消息传递提供最简单的API。 核心IBus接口有意避免公开AMQP概念,如交换,绑定和队列,而是实现基于消息类型的默认交换绑定队列拓扑。 对于某些场景,能够配置您自己的exchange绑定队列拓扑是很有用的;高级EasyNetQ API允许您这样做。高 阅读全文
posted @ 2020-09-06 17:10 .Neterr 阅读(919) 评论(0) 推荐(0)
摘要: 随着SOA、微服务、CQRS的盛行,EventBus越来越流行,上GitHub搜了一下,还是有蛮多的这类实现,老牌的有NServiceBus(收费)、MassTransit,最近的有CAP(国人写的,1.4k个Star,非常不错)、ReBus(张队长在NanoFabric中推荐的)、RawRabbi 阅读全文
posted @ 2020-09-06 17:03 .Neterr 阅读(232) 评论(0) 推荐(0)
摘要: Request/Response模式 介绍 EasyNetQ也支持Request/Response这种方式的消息模式。适合在client/Server应用中执行,客户端发送一个请求到服务器,服务器然后处理请求后返回一个响应。和传统的RPC机制不同,EasyNetQ request/response操 阅读全文
posted @ 2020-09-05 23:17 .Neterr 阅读(808) 评论(0) 推荐(0)
摘要: 介绍 EasyNetQ支持的最简单的消息模式是发布/订阅.这个模式是一个极好的方法用来解耦消息提供者和消费者。消息发布者只要简单的对世界说“这里有些事发生” 。它不关心有没有人监听,或者接收者是谁,或者接收者在那里。我们能够添加和移除特定类型的消息的订阅者,不需发布者做任何的重新配置。 假如你开始去 阅读全文
posted @ 2020-09-05 22:41 .Neterr 阅读(1268) 评论(0) 推荐(1)
上一页 1 2 3 4 5 6 7 8 9 10 ··· 12 下一页