自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MaleDeer

人生要有取舍 想要成功就要付出代价

  • 博客(47)
  • 收藏
  • 关注

原创 Ubuntu18.04 安装 RabbitMQ

目录前言:一、安装1) 安装erlang2) 更新 apt-get 源3) 安装 RabbitMQ4) 添加 admin 用户5) 设置 admin 为 administrator 角色6) 赋权7) 启用图形管理界面二、 开放端口三、 管理RabbitMQ常用命令参考文档前言:RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP协议更多用在企业系统内,对数据一致性、稳定性和可靠性

2020-11-21 01:30:37 77 1

原创 .Net Core 中使用 HttpClient

目录前言:一、正确使用 HttpClient 的示例二、使用 IHttpClientFactory 实现1. 基本使用2. 命名不同的配置参考文档前言:HttpClient 旨在实例化一次,并在应用程序的整个生命周期内重复使用。实例化每个请求的 HttpClient 类将耗尽重负载下可用的插槽数。 这将导致 SocketException 错误。一、正确使用 HttpClient 的示例在使用 HttpClient 时应该使用单例模式。 public class GoodController :

2020-08-11 07:37:57 56 1

原创 C# 中 async/await 解析

目录前言:一、使用 async 和 await二、用代码实现 async/await前言:已经有很多文章讲解 async/await 了,此文仅给自己理解用。此文章以下代码将重复使用,贯穿全文 public static string GetThreadId() { return Thread.CurrentThread.ManagedThreadId.ToString("000"); } public static void TaskRun(

2020-08-09 17:03:54 56

原创 C# 中的多线程实现方式

目录前言:一、使用委托开启子线程二、使用Thread开启子线程前言:线程 被定义为程序的执行路径。每个线程都定义了一个独特的控制流。如果您的应用程序涉及到复杂的和耗时的操作,那么设置不同的线程执行路径往往是有益的,每个线程执行特定的工作。下面简单的 DoSomething 方法将贯穿全文。 private string DoSomething(string name, int millisecondsTimeout) { Thread.Sleep(millisecond

2020-08-04 21:02:33 63

原创 C# 中的装饰器模式示例

装饰器模式属于结构型模式,它是作为现有的类的一个包装。允许向一个现有的对象添加新的功能,同时又不改变其结构。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 public abstract class AbstractMotion { public abstract void Start(); } public class BaseMotion : AbstractMotion {

2020-07-23 22:03:23 145

原创 C# 中的原型模式示例

原型模式,把对象从内存层面复制,然后返回。不经过类的构造函数,但是是一个全新的对象。 public class Prototype { public Prototype() { Console.WriteLine("构造。。。。"); } private static readonly Prototype prototype = new Prototype(); public sta

2020-07-21 20:52:22 36

原创 C# 使用 ExcelDataReader 实现 Excel 转换为 DataTable

在 github 上下载了 ExcelDataReader 的源码,摘取Demo的核心代码进行小改。该代码,包含了取第几页的数据,还有是否将Excel的第一行作为DataTable的列名。 public class ExcelHelper { public static DataSet ExcelToDataSet(string relativeFilePath, bool useHeaderRow = true) { var fil

2020-07-20 22:31:40 129

原创 C# 中的单例模式示例

目录前言:一、线程不安全的单例二、使用锁实现单例三、使用静态构造函数实现单例四、使用静态字段实现单例五、使用Lazy实现单例前言:一、线程不安全的单例懒汉模式,线程不安全,不建议使用。 public class Singleton { private Singleton() { } private static Singleton singleton = null; public static Singleton CreateInst

2020-07-20 22:23:14 28

原创 C# 中的表达式树

目录前言:一、使用lambda声明表达式树二、表达式树的分解三、表达式树实现实体映射四、表达式树的访问或重写五、表达式树的Sql拼装前言:我们在工作当中,经常会接触到与表达式树相关的内容,比如 EF,EF Core中的 lambda,就是表达式树。表达式树是一种数据结构,一个能拼装能解析的数据结构。一、使用lambda声明表达式树以下代码演示声明表达式树和表达式树转换为委托。 // lambda表达式 声明表达式目录树,是一个数据结构 (快捷方式) Expression<Fu

2020-07-19 20:05:36 41

原创 C# 优化的图片压缩

用了网上百度的图片压缩以后发现并不合适,压缩参数 new EncoderParameter(Encoder encoder, long value) 的参数 value 和图片的大小并不是线性相关。我也没有去深层研究内部构造,根据试参,重新写了算法。

2020-07-07 21:01:25 64

原创 C#中常用的加密算法的封装

DES加密是对称加密算法,对称加密算法的优点是速度快,缺点是密钥管理不方便,要求共享密钥

2020-07-01 21:41:35 67

原创 C# 中的常用的反射方法

目录前言:一、项目结构二、创建对象并调用方法1. 获取类型2. 创建对象 (构造函数重载)3. 调用方法 (无参非重载)4. 调用方法 (一个参数非重载)4. 调用方法 (静态方法)5. 调用方法 (重载无参)6. 调用方法 (重载有参)7. 调用方法 (重载有参)8. 调用私有方法9. 获取类型 (泛型)10. 访问私有构造函数创建对象11. 调用泛型方法三、创建对象并修改属性和字段1. 遍历属性2. 便利字段前言:反射提高了程序的灵活性和扩展性。降低耦合性,提高自适应能力。它允许程序创建和控制

2020-06-16 22:00:48 74

原创 在 ASP.NET Core 中使用中间件处理异常

目录前言:一、开发人员异常页二、异常处理程序页三、异常处理程序 lambda前言:本文使用 .NET Core SDK 3.1 的版本,介绍了处理 ASP.NET Core Web 应用中常见异常的一些方法。本文 Demo 中贯穿全文的代码如下:#region Enums public enum ResultState { 请求成功 = 200, 未登录 =...

2020-03-17 22:27:08 203

原创 在 .NET Core 和 ASP.NET Core 中使用 Serilog

目录前言:前言:本文使用的 .NET Core SDK 3.1 版本。与.NET的其他日志记录库不同,在 Serilog 中和日志消息一起传递的参数不会破坏性地呈现为文本格式,而是作为机构化数据保留。在 Serilog 的 NuGet 包中,Serilog.AspNetCore 是所有常用包的集合。所以你不管是控制台程序还是Web程序直接引入 Serilog.AspNetCore 即可:...

2020-03-14 19:33:48 519

原创 使用 IdentityServer4 隐式流(Implicit)保护 Vue(SPA)客户端

目录前言:前言:该文章 Vue 用 Vue CLI 3.0 创建的 Vue + TypeScript + Sass 的项目。

2020-03-10 22:33:12 694

原创 ASP.NET Core 中的选项模式

一、依赖注入的生命周期在选项模式中实例的生命周期由注入时使用的接口决定,有IOptions 、 IOptionsMonitor 和 IOptionsSnapshot共三个,其中 IOptions 、 IOptionsMonitor 的生命周期是单例模式,生命周期和 AddSingleton 类似,IOptions 没有数据热更新,读取的值永远不会变。IOptionsMonitor 和 I...

2020-03-10 22:29:55 684

原创 .NET Core 和 ASP.NET Core 中的日志框架

目录前言:一、在控制台应用程序中使用日志框架1) 日志的简单使用前言:本文使用的 .NET Core SDK 3.1 版本。本文将主要介绍ASP.NET Core自带的日志 Microsoft.Extensions.Logging 程序包的使用,主要演示如何在 ASP.NET Core Web 应用程序 和 控制台应用程序 中使用 Microsoft.Extensions.Logging...

2020-03-10 22:01:24 1070

原创 .NET Core 中使用强类型对象承载配置数据

目录前言:前言:本章节引入了 Microsoft.Extensions.Configuration.Json ,Microsoft.Extensions.Configuration.Binder 两个程序包。

2020-02-25 22:32:30 77

原创 .NET Core 的配置框架

目录前言:一、内存配置提供程序二、命令行配置提供程序前言:ASP.NET Core 中的应用配置基于配置提供程序 建立的 键值对 。配置提供程序将配置数据从各种配置源读取到键值对。配置框架的核心实现包是Microsoft Extensions.Configuration,依赖于Microsoft Extensions.Configuration.Abstractions抽象包。使用了 ...

2020-02-21 00:20:30 135

原创 在ASP.NET Core中使用Autofac增强容器能力

目录前言一、什么情况需要引入第三方容器组件二、核心扩展点前言当前引入了NuGet包$ Install-Package Autofac.Extras.DynamicProxy -Version 4.5.0$ Install-Package Autofac.Extensions.DependencyInjection -Version 5.0.1一、什么情况需要引入第三方容器组件基于名...

2020-02-15 13:55:15 404

原创 ASP.NET Core 依赖注入(Ioc)框架

目录前言一、依赖注入组件包二、核心类型2)Linux 部署(使用 systemctl)参考文档前言当前文章的 SDK 版本为 .NET Core 3.1 SDK ,使用ASP.NET Coref内置的依赖注入框架。一、依赖注入组件包该组件使用了接口实现分离模式。抽象包只包含接口的定义,实现包包含具体的实现,使用时注入具体实现即可,未来我们可以去做任意扩展。Microsoft.Ex...

2020-01-25 20:27:22 84

原创 使用 BackgroundWorker 执行任务并监控线程进度

目录前言:示例前言:该示例适用于任务执行时返回进度。示例示例 UI 基本为如下图示例代码如下 private BackgroundWorker _bw; /// <summary> /// 开始按钮 /// </summary> /// <param name="sender"></param...

2019-12-22 08:35:40 81

原创 使用 CancellationTokenSource 中止 Task

目录前言:示例前言:该示例适用于中止 Task示例示例 UI 基本为如下图示例代码如下 private CancellationTokenSource _cts; /// <summary> /// 开始按钮 /// </summary> /// <param name="sender"><...

2019-12-21 22:46:13 53

原创 托管和部署 ASP.NET Core (其一)

目录前言一、独立部署1)Windows 部署2)Linux 部署二、 @Emit 装饰器1)父组件2)子组件三、 @Model 装饰器1)父组件2)子组件四、 @Prop 装饰器1)父组件2)子组件五、 @Provide 装饰器 和 @Inject 装饰器1)父组件 @Provide2)子组件 @Inject六、 @Watch 装饰器参考文档前言一、独立部署1)Windows 部...

2019-12-20 08:36:31 72

原创 在 CentOS 7 安装 .Net Core SDK

目录前言:一、注册Microsoft密钥和源二、安装.NET安装.NET Core SDK安装ASP.NET Core运行时安装.NET Core运行时三、如何安装其他版本参考文档前言:在安装.NET之前,需要:注册Microsoft密钥注册产品资料库安装所需的依赖项一、注册Microsoft密钥和源在安装.NET之前,您需要:注册Microsoft密钥注册产品资料库安...

2019-12-16 21:31:56 282

原创 .NET Fx 使用 log4net 接入 ELK

目录一、引入NuGet包二、配置 log4net三、记录日志一、引入NuGet包接入ELK首先需要引入 log4net 和 log4net.ElasticSearch 两个包。直接使用程序包管理器控制台Install-Package log4netInstall-Package log4net.ElasticSearch二、配置 log4netlog4net.config 配置文...

2019-11-15 18:48:27 129

原创 C# 同步方法转换为异步方法

一个普通方法需要用异步方法返回可以用 Task.FromResult() 和 Task.Run() 。一个异步方法需要在普通方法中调用时,可以用 (Task).GetAwaiter().GetResult() 来获取同步值。 static async void Main(string[] args) { int a = await ResultZeroAsync(...

2019-08-16 18:16:32 1327

原创 .NET 高性能泛型缓存

目录前言:一、创建项目二、IdentityServer 项目1) 将 json config 修改为 code config2) 修改 Config.cs 文件三、Api 项目1) 配置 Startup.cs2) IdentityController.cs 文件3) TodoController.cs 文件四、Vue 项目参考文档前言:该文章 Vue 用 Vue CLI 3.0 创建的 Vu...

2019-08-09 23:40:27 614

原创 JavaScript 常用的高阶函数

目录前言:一、map()二、reduce()三、filter()四、sort()前言:fffff一、map()按照同一规则 改变数组内的每个值 function pow(x) { return x * x; } var arr = [1, 2, 3, 4]; var results = arr.map(pow); // [1, 4, 9, 16] results ...

2019-06-15 17:07:31 94

原创 VMware Workstation创建了CentOS 7虚拟机后配置网络

目录一、网络配置查看二、编辑Linux中的网络配置文件三、查看网络配置四、重启网络服务五、重启网络服务六、查看DNS文件配置七、测试一、网络配置查看你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。二、编辑Linux中的网络配置文件我们对Markdown编辑器进行了一...

2019-06-14 21:15:14 272

原创 使用 IdentityServer4 授权码(Authorization Code)保护 ASP.NET Core 客户端并访问被保护资源

目录前言:一、创建项目参考文档前言:资源所有者密码凭证(例如用户名和密码)直接被用来请求 Access Token通常用于遗留的应用资源所有者和客户端应用之前必须高度信任其他授权方式不可用的时候才使用,尽量不用一、创建项目参考文档Requesting Claims using Scope Values - OIDCResource Owner Password Cred...

2019-05-10 16:46:42 1675 1

原创 使用 IdentityServer4 资源所有者密码凭证(ResourceOwnerPassword)访问受保护资源

目录前言:一、创建项目二、Api 项目1) 配置 Startup.cs2) IdentityController.cs 文件三、IdentityServer 项目1) 将 json config 修改为 code config2) 修改 Config.cs 文件四、WpfClient 项目1) 修改 MainWindow.xaml 文件2) 修改 MainWindow.xaml.cs 文件参考文档...

2019-05-09 20:30:24 594

原创 使用 IdentityServer4 客户端凭证(ClientCredentials)访问受保护资源

目录前言:一、创建项目二、IdentityServer 项目1) 将 json config 修改为 code config2) Config.cs 修改三、Api 项目1) 配置 Startup.cs2) IdentityController.cs 文件四、ConsoleClient 项目1) 修改ConsoleClient.csproj 文件2) 修改Program.cs 文件参考文档前言:...

2019-05-09 18:11:09 502

原创 使用 Vuex + TypeScript 时项目中常用的装饰器

目录前言:一、装饰器的简单运用1) 创建并在项目中引入 Vuex2) 在 Vue组件 中使用 Vuex一、使用 Module 将 store 分割成模块1) 引入前言:当前用到了创建项目应该会自带的 vue-property-decorator npm包代码中 el-* 的标签是 ElementUI 的组件。一、装饰器的简单运用1) 创建并在项目中引入 Vuex首先在 src ...

2019-05-04 09:48:20 2509 1

原创 使用 Vue + TypeScript 时常用的装饰器

目录一、@Component 装饰器1)父组件2)子组件二、 @Emit 装饰器1)父组件2)子组件三、 @Model 装饰器1)父组件2)子组件四、 @Prop 装饰器1)父组件2)子组件五、 @Provide 装饰器 和 @Inject 装饰器1)父组件 @Provide2)子组件 @Inject六、 @Watch 装饰器备注: 代码中 el-* 的标签是 ElementUI 的组件。一、...

2019-04-30 09:04:49 4017

原创 使用 Vue + axios 时,返回状态200,返回值被浏览器拦截

目录前言解决方案前言在使用 Vue + TypeScript + axios 时,后端已经配置了Cors的前提下,但是在请求接口的时候,返回状态为 200,但是返回值却被浏览器给拦截了。解决方案在 main.ts(main.js) 中增加一条 axios 的配置,withCredentials 默认为 false,所以为一条。import Vue from 'vue';import A...

2019-04-27 15:58:40 2550

原创 在 .NET Core 中使用 FluentValidation 进行验证

目录从 NuGet 安装 FluentValidation争对 Resource类 建立FluentValidation在Startup中对写好的验证进行注册从 NuGet 安装 FluentValidation使用 FluentValidation 时,核心的包时 FluentValidation 和 FluentValidation.AspNetCore。使用 NuGet 包管理控制台运...

2019-03-09 17:39:31 1032

原创 .NET 中数据访问用的 DBHelper(Sql Server) 类

public class DBHelper { private static string DBConnectString = "Data Source=.;Initial Catalog=Roseonly;Integrated Security=True"; private static SqlConnection conn; pu...

2019-03-08 21:48:31 489

原创 在 ASP.NET Core 中使用 AutoMapper 使 Entity 和 Resource 之间进行映射

目录从 NuGet 安装 AutoMapper添加 Entity类 和 Resource类添加一个 Profile文件,配置映射关系在Startup中对AutoMapper进行注册在项目中使用AutoMapper进行映射从 NuGet 安装 AutoMapper在使用 AutoMapper 时,核心的包是 AutoMapper 和 AutoMapper.Extensions.Microsoft...

2019-03-08 21:25:18 837

原创 在 ASP.NET Core 中使用 Serilog 进行日志记录

目录从 NuGet 安装 Serilog在 Main函数 中配置 Serilog在项目中使用 Serilog 进行日志输出从 NuGet 安装 Serilog核心的包是 Serilog 和 Serilog.AspNetCore。常用的还有 Serilog.Sinks.Console 控制台日志打印 和 Serilog.Sinks.File 文件日志打印。PM&amp;gt; Install-Pac...

2019-03-07 23:21:07 8503

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除