10 2020 档案

摘要:源代码的动态编译问题,我们知道这个可以利用Roslyn来解决。 实现一个编译助手类,它的Compile方法将会对参数sourceCode提供的源代码进行编译。该方法返回源代码动态编译生成的程序集,它的第二个参数代表引用的程序集。 添加Nuget包: <PackageReference Include 阅读全文
posted @ 2020-10-30 16:24 .Neterr 阅读(2035) 评论(0) 推荐(1) 编辑
摘要:WebMarkupMin可以做什么: 运行时最小化html、css、js(去除空格、注释...) 对HTTP启用压缩(GZip、Deflate、Brotli..) 使用步骤: 添加Nuget包: <PackageReference Include="WebMarkupMin.AspNet.Brotl 阅读全文
posted @ 2020-10-29 13:56 .Neterr 阅读(539) 评论(0) 推荐(1) 编辑
摘要:一、前言 源码 1、最近一直在看项目性能优化方式,俗话说的好项目优化第一步那当然是添加缓存,我们的项目之所以卡的和鬼一样,要么就是你的代码循环查询数据库(这个之前在我们的项目中经常出现,现在慢慢在修正)或者代码做了很多不该做的事情。这个时候就可以引入我们的缓存了。(只要你的代码不是写的特别差,比如之 阅读全文
posted @ 2020-10-28 16:28 .Neterr 阅读(257) 评论(0) 推荐(0) 编辑
摘要:今天在工作上遇到这么个需求:需要获取对象上所有属性的值,但并事先并不知道对象的类型。 我的第一反应就是使用反射,但是这个操作会进行多次,大量的反射肯定会有性能影响。虽然对我这个项目无关紧要,但我还是选择了另外一种解决方案:构建表达式树,再生成委托,然后将委托缓存在字典里。代码如下: 首先构建表达式树 阅读全文
posted @ 2020-10-25 17:14 .Neterr 阅读(274) 评论(0) 推荐(0) 编辑
摘要:介绍 ContractResolver能做什么: 为属性添加一些序列化设置 自定义属性名 有选择的序列化属性 CamelCasePropertyNamesContractResolver Newtonsoft提供了CamelCasePropertyNamesContractResolver,继承自C 阅读全文
posted @ 2020-10-25 11:34 .Neterr 阅读(3894) 评论(0) 推荐(2) 编辑
摘要:通常的序列化与反序列化中的json结构与c#中的类模型结构是相对应的,我们是否可以在序列化一个对象时候,让我们json的数据结构能按照自己的意愿,而不必与该对象的数据结构一样呢?,比如说,一个对象,只有一个名为"ID"的int类型的属性,值为1,如果序列化该对象,则能得到json:{"ID":1}, 阅读全文
posted @ 2020-10-23 23:57 .Neterr 阅读(7557) 评论(0) 推荐(0) 编辑
摘要:一、JSON使用JsonPropertyAttribute重命名属性名 [JsonProperty("name")] 二、JSON使用JsonPropertyAttribute序列化升序排序属性 [JsonProperty(Order=4)] 三、反序列化属性时,Required指定属性性质 指定其 阅读全文
posted @ 2020-10-23 22:50 .Neterr 阅读(2123) 评论(0) 推荐(0) 编辑
摘要:序列化设置的几种方式: 全局序列化:(在之后使用JsonConvert进行序列化时都有效) JsonConvert.DefaultSettings = new Func<JsonSerializerSettings>(() => { Newtonsoft.Json.JsonSerializerSet 阅读全文
posted @ 2020-10-22 22:43 .Neterr 阅读(391) 评论(0) 推荐(0) 编辑
摘要:Task(任务) 任务是 MSBuild 真正要执行的东西,例如编译、打包和下载文件等等任务,可以由我们自行用 C# 或者 VB.NET 等语言实现。 关于任务的编写,我们将在以后进行介绍,这里只简单介绍一下任务的使用。 MSBuild 也内置了很多任务,例如 Message 用来打印信息、Warn 阅读全文
posted @ 2020-10-17 17:48 .Neterr 阅读(440) 评论(0) 推荐(0) 编辑
摘要:MSBuild MSBuild是在.NET 2.0中引入的针对Visual Studio的构建系统。它可以执行构建脚本,完成各种Task——最主要的是把.NET项目编译成可执行文件或者DLL。从技术角度来说,制作EXE或者DLL的重要工作是由编译器(csc,vbc等等)完成的。MSBuild会从内部 阅读全文
posted @ 2020-10-17 16:16 .Neterr 阅读(1040) 评论(0) 推荐(1) 编辑
摘要:IContainer是通过ContainerBuilder.Build()方法创建的,由于Autofac有限制,Build()方法只能调用一次,所以我们不能直接通过Build()创建IContainer。 Autofac提供了以下方式可以获取Icontainer: public class Glob 阅读全文
posted @ 2020-10-14 15:00 .Neterr 阅读(1224) 评论(0) 推荐(0) 编辑
摘要:如果publish、Subscribe所用的Message不是同一类型如何处理? 替换组件ITypeNameSerializer 1、下面这个类是从Easynetq源码中拷出来的,主要包含两个方法Serialize、Deserialize 由于这两个方法不是虚方法,所以不能重写,我们把源码拷出来,把 阅读全文
posted @ 2020-10-14 13:34 .Neterr 阅读(1127) 评论(0) 推荐(0) 编辑
摘要:AsnyncLocal与ThreadLocal都是存储线程上下文的变量,但是,在实际使用过程中两者又有区别主要的表现在: AsyncLocal变量可以在父子线程中传递,创建子线程时父线程会将自己的AsyncLocal类型的上下文变量赋值到子线程中,但是,当子线程改变线程上下文中AsnycLocal变 阅读全文
posted @ 2020-10-10 16:18 .Neterr 阅读(451) 评论(0) 推荐(0) 编辑