随笔分类 - .NET
摘要:简单用法 //获取MemoryPool实例,实际返回了一个ArrayMemoryPool<T> MemoryPool<char> Pool = MemoryPool<char>.Shared; //加上using using IMemoryOwner<char> owner = Pool.Rent(
阅读全文
摘要:概述 弱引用 GC在回收时检测对象是否有强引用,如果没有则可以执行回收。 那么什么是强引用的对象?简单概括说就是程序当前可以访问的对象。举两个例子 某个类里定义了一个静态变量GlobalConfig,那这个GlobalConfig就是被强引用的对象,如果设置GlobalConfig=null,强引用
阅读全文
摘要:定义 高性能托管数组缓冲池,可重复使用,用租用空间的方式代替重新分配数组空间的行为 好处 可以在频繁创建和销毁数组的情况下提高性能,减少垃圾回收器的压力 使用 获取缓冲池实例:Create/Shared var pool=ArrayPool[byte].Shared 调用缓冲池实例**Rent()*
阅读全文
摘要:.NetCore的配置选项建议结合在一起学习,不了解.NetCore 配置Configuration的同学可以看下我的上一篇文章 [.Net Core配置Configuration源码研究] 由代码开始 定义一个用户配置选项 public class UserOptions { private st
阅读全文
摘要:最近又研究了一下.NetCore配置选项的源码实现,又学习到了不少东西。这篇文章先写一下IConfiguration的学习成果,Options的后面补上 核心类 ConfigurationBuilder:IConfigurationBuilder (构建IConfiguration) IConfig
阅读全文
摘要:目前项目开发基本都基于.NetCore 3.1以上了,有些老版本的规则和概念也没有列出来,低版本的垃圾回收类型和内存释放方式会有所不同 垃圾回收器为什么存在 开发人员不必手动释放内存。 有效分配托管堆上的对象。 回收不再使用的对象,清除它们的内存,并保留内存以用于将来分配。 托管对象会自动获取干净的
阅读全文
摘要:IdentityServer4的基础知识和使用方式网上有很多特别优秀的文章,如果有对其不了解的推荐阅读一下下面的两篇文章 "http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html" "https://www.cnblogs.com/stulzq/p
阅读全文
摘要:FluentScheduler介绍 github地址: "https://github.com/fluentscheduler/FluentScheduler" FluentScheduler是一个简单的任务调度框架,使用起来非常方便,这个框架也是我在搜索iis预加载的时候偶然间发现的,立马拿来试用
阅读全文
摘要:关于RabbitMQ是什么以及它的概念,不了解的可以先查看一下下面推荐的几篇博客 "https://blog.csdn.net/whoamiyang/article/details/54954780" "https://www.cnblogs.com/frankyou/p/5283539.html"
阅读全文
摘要:对于Zookeeper的定义以及原理,网上已经有很多的优秀文章对其进行了详细的介绍,所以本文不再进行这方面的阐述。 本文主要介绍一些基本的准备工作以及zookeeper.net的使用。 本文源代码github地址: "https://github.com/Mike Zrw/ZookeeperHelp
阅读全文
摘要:在微服务架构中,如果忽略服务的安全性,任由接口暴露在网络中,一旦遭受攻击后果是不可想象的、 保护微服务键安全的常见方案有:1.JWT令牌(token) 2.双向SSL 3.OAuth 2.0 等 本文主要介绍使用Token的实现方式 源码地址: "https://github.com/Mike Zr
阅读全文
摘要:微软的Task已经出来很久了,一直没有去研究,以为就是和Thread差不多的东西。直到最近看到了Task的使用介绍,发现比Thread的语法要精炼多了,于是便在项目中用上了。 结果就出问题了,数据库连接池用一段时间就满了,排除了各种原因,最后开始怀疑是不是Task有什么不为人知的隐患。 由于对Tas
阅读全文
摘要:1 public class SqlExpressionTree 2 { 3 public string GetQuerySql<T>(Expression<Func<T, bool>> condi) 4 { 5 string condition = "select * from "+typeof(
阅读全文
摘要:Stream st = Request.Files[0].InputStream; Byte[] buffer = new Byte[st.Length]; st.Read(buffer, 0, buffer.Length); MemoryStream stream = new MemoryStre
阅读全文