摘要: 前阵子在对接银行接口,对方给出的加密方式是SM2,在网上找了不少教程,都是使用Portable.BouncyCastle实现的,功能实现后发现对方给出的密钥格式是PKCS8,下面代码记录一下PKCS8密钥如何使用 各种常用的加密方法例子总结 https://gitee.com/xuzhongye/C 阅读全文
posted @ 2021-08-15 15:52 Karl_Albright 阅读(1207) 评论(0) 推荐(1) 编辑
摘要: 怎么使用模块1. 建立模块直接的依赖关系,可以通过DependsOnAttribute特性来确定依赖关系2. 先配置模块,实现为模块填充数据和功能设置。3. 使用模块提供的功能接口 怎么定义模块1. 每个模块都应该定义一个模块类并继承AbpModule抽象了类2. 通过DependsOnAttrib 阅读全文
posted @ 2021-06-07 08:57 Karl_Albright 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 1. 线程池基础。 创建和销毁线程是一个昂贵的操作,要耗费大量时间。太多的线程会浪费内存资源。由于操作系统必须调度可运行的线程并执行上下文切换,所以大多的线程还对性能不利。为了改善这个情况,CLR包含了代码来管理它自己的线程池(thread pool)。线程池是你的应用程序能使用的线程集合。每CLR 阅读全文
posted @ 2021-06-07 01:16 Karl_Albright 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 1. Microsoft 设计这个OS内核时,决定在一个进程中运行应用程序的每个实例。进程实际是应用程序的实例要使用的资源的集合。每个进程都被赋予了一个虚拟地址空间,确保在一个进程中使用的代码和数据无法由另一个进程访问。 2. 如果发生死循环会停止响应,所以有了线程,线程的职责是对CPU进行虚拟化。 阅读全文
posted @ 2021-06-06 11:25 Karl_Albright 阅读(62) 评论(0) 推荐(0) 编辑
摘要: Redis 中的数据类型 Redis 中,常用的数据类型有以下几种: String 字符串 Hash 散列/哈希 List 列表 Set 集合 Sorted Set 有序集合 所有数据都是 key-value 形式存储,每个数据都有唯一的 key,以上数据类型是 value。 删除一个数据的命令:D 阅读全文
posted @ 2021-06-04 15:25 Karl_Albright 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 在开发中,有时候生成验证码的场景目前还是存在的,本篇演示不依赖第三方组件,生成随机验证码图片。 先添加验证码接口 public interface ICaptcha { /// <summary> /// 生成随机验证码 /// </summary> /// <param name="codeLen 阅读全文
posted @ 2021-06-03 22:01 Karl_Albright 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 1. 异常是指成员没有完成它的名称所宣称的行动,异常类继承System.Exception。 2. .Net Framework 异常处理机制是用Microsoft windows提供的结构化异常处理(Structured Exception Handing, SEH)机制构建的。 3. AppDo 阅读全文
posted @ 2021-06-03 19:58 Karl_Albright 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 1. 访问一个资源所需的步骤 1). 调用IL指令newobj,为代表资源的类型分配内存(一般使用C# new 操作符来完成)。 2). 初始化内存,设置资源的初始状态并使资源可用。类型的实例构造器负责设置初始状态。 3). 访问类型的成员来使用资源(有必要可以重复)。 4). 摧毁资源的状态以进行 阅读全文
posted @ 2021-06-03 19:57 Karl_Albright 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 1. 字符串一经创建,便不能以任何方式修改,只能修改引用。 2. ToLowerInvariant() 和 ToUpperInvariant() 以忽略语言文化的方式将字符串转换为小写或大写形式。性能比ToLower() 和 ToUpper()好。而且Microsoft对执行大写比较的代码进行了优化 阅读全文
posted @ 2021-06-02 19:14 Karl_Albright 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 1. 值类型的变量永远不会为null,所有需要使用System.Nullable<T> 2. 操作数是null,结构是null;==、!=操作数都为null,则返回true;<、>、<=、>= 任何一个操作数为null,则返回false。 3. 操作可空类型的速度慢于非可空类型速度。 4. ?? 不 阅读全文
posted @ 2021-06-02 19:08 Karl_Albright 阅读(38) 评论(0) 推荐(0) 编辑