随笔分类 - .Net
摘要:环境:netcore 5.0 iis 8.5 ajax调用delete接口时发生了以下错误 很困惑,检查了跨域配置如下: 并正常启用了中间件如下: 前端访问均正常,且get、post等请求也能正常访问,就是delete和put报了405 methd not allowed 和跨域错误,意识到事情没有
阅读全文
摘要:表达式树是一种树形数据结构,通过动态语言运行时 (DLR) 将一组动态语言服务添加到公共语言运行时 (CLR),为静态类型语言添加动态特征。C#属于静态语言.简而言之,就是通过CLR引入DLR,DLR中包含了表达式树的功能,那么C#代码就具备了将静态代码转换成动态代码的功能.常用于一些运算逻辑的转换
阅读全文
摘要:回调在日常开发中,很常见,区别于非托管C/C++的非成员函数,framework提供了委托这种类型安全的机制,来完成回调.示例如下: public class Program { public static void Start() { new Machine().Run(); } } public
阅读全文
摘要:1、构建包管理网站 (1)、构建部署 参考官方文档 按照文档构建完nuget服务器之后,部署到iis,放行端口,测试 完成部署. (2)、修改配置 去除推送包的密码,否则每次推送包需要带密码 2、编写打包命令 参考官方文档 (1)、原理介绍、 (2)、Api使用 3、发布包 (1)、原理介绍 (2)
阅读全文
摘要:1、观察者模式 关于观察者模式,不在赘述,本质是利用event和handler配合,event本质是handler的实例,通过在event挂载事件实现内存级别的程序的通知机制.下面通过代码来展示常用观察者模式的构建方式. (1)、需求 假设X工厂有一台锅炉,现在需要一个监测程序,该程序监测锅炉的温度
阅读全文
摘要:接着abp vnext2.0核心组件之模块加载组件源码解析和abp vnext2.0核心组件之.Net Core默认DI组件切换到AutoFac源码解析集合.Net Core3.1,基本环境已经完备,接下去就是构建领域层,vnext整个领域层大致分为聚合根、实体、值对象、事件实体、仓储、服务等等,内
阅读全文
摘要:老版Abp对Castle的严重依赖在vnext中已经得到了解决,vnext中DI容器可以任意更换,为了实现这个功能,底层架构相较于老版abp,可以说是进行了高度重构.当然这得益于.Net Core的DI容器组件本身的优势.接着abp vnext2.0核心组件之模块加载组件源码解析上文,上文中我跳过了
阅读全文
摘要:abp vnext是abp官方在abp的基础之上构建的微服务框架,说实话,看完核心组件源码的时候,很兴奋,整个框架将组件化的细想运用的很好,真的超级解耦.老版整个框架依赖Castle的问题,vnext对其进行了解耦,支持AutoFac或者使用.Net Core的默认容器.vnext依然沿用EF co
阅读全文
摘要:介绍JwtToken认证之前,必须要掌握.Net Core认证系统的核心原理,如果你还不了解,请参考.Net Core 认证组件源码解析,且必须对jwt有基本的了解,如果不知道,请百度.最重要的是你还需要掌握identity server4的基本用法,关于identity server4因为设计到两
阅读全文
摘要:接着上文.Net Core 认证系统源码解析,Cookie认证算是常用的认证模式,但是目前主流都是前后端分离,有点鸡肋但是,不考虑移动端的站点或者纯管理后台网站可以使用这种认证方式.注意:基于浏览器且不是前后端分离的架构(页面端具有服务端处理能力).移动端就不要考虑了,太麻烦.支持前后端分离前给移动
阅读全文
摘要:前面关于.Net Core如何进行用户认证的核心流程介绍完毕之后,.Net Core 认证系统之Cookie认证源码解析远程认证暂时不介绍,后期有时间,我会加上.接下去介绍认证组件是如何和授权组件一起协同工作.源码的路径如下,自行去github下载.ok,开始! 1、认证组件的执行流程 Core启动
阅读全文
摘要:1、简介 省去前面的创建Core Web项目的一系列操作.VS帮你自动化初始化好所有的基础组件、环境.第一步就是认证.就是登陆.当然微软提供了一套登陆组件.很全,很完善。项目在Core源码 Security文件夹下,源码自行去github下载.里面提供了若干个认证方法,常见的Cookie认证、Jwt
阅读全文
摘要:NUGET命令 注:使用前确保nuget是最新版本,升级到最新版本有两种方式: (1)、CMD将nuget升级到最新版本:nuget update -self (2)、扩展中查看nuget是否需要更新. 一、安装 1.安装指定版本类库install-package <程序包名> -version <
阅读全文
摘要:1、简介 .NET 3.5 开始 ReaderWriterLockSlim登上舞台,ReaderWriterLockSlim 可以看做是 ReaderWriterLock 的升级版。 由于 ReaderWriterLockSlim 默认不支持递归调用、所以在某种意义上来说更不容易造成死锁。Reade
阅读全文
摘要:1、简介 本文主要演示日常开发中利用多线程写入文件存在的问题,以及解决方案,本文使用最常用的日志案例! 2、使用File.AppendAllText写入日志 这是种常规的做法,通过File定位到日志文件所在位置,然后写入相应的日志内容,代码如下: 报错了,原因,Windows不允许多个线程同时操作同
阅读全文
摘要:1、简介 关于Windows的异步I/O操作,只要解决的是同步I/O操作的线程利用率问题,通过异步I/O Api来提升线程的利用率,提升系统的吞吐能力,将各种I/O操作交给线程池然后交由硬件设备执行,期间完全不占用线程和CPU资源. 2、同步I/O存在的问题 当编写同步I/O操作时,在硬件设备执行I
阅读全文
摘要:1、简介 泛型工厂理论上不算Gof23中设计模式之一,但是也算是一种非常好的设计模式,个人认为,废话不多说,先写个简单的抽象工厂,在写一个泛型工厂的例子来比较抽象和泛型的区别. 2、实战 还是房屋和道路,always road and house,例子不重要重要的是对模式的理解. 3、抽象工厂 ok
阅读全文
摘要:1、简介 在日常开发中,某些对象的状态如果发生改变,对应的行为也将发生改变,那么如何在运行时根据对象的状态动态的改变对象的行为,同时不产生紧耦合关系(即使用if else或者swith所带来的紧耦合关系).即对扩展开放,对修改关闭一开闭原则. 2、案例 假设用户提出了一个需求,有三类文档对象,他们都
阅读全文
摘要:1、简介 选择排序是排序中比较简单的一种,实现的大致思路如下:首先我们拿到一个需要排序的数组,假设该数组的第一个元素是最小的,然后将数组中剩下的元素,于最小的元素进行比较,如果中间有比第一个元素的小的,那么设当前元素为最小的,然后剩下的元素在和当前元素进行比较,直到找到最小的.这时候第一轮循环结束,
阅读全文
摘要:1、简介 链表是一种非常基础的数据结构之一,我们在日常开发种都会接触到或者是接触到相同类型的链表数据结构.所以本文会使用C#算法来实现一个简单的链表数据结构,并实现其中几个简单的api以供使用. 2、概述 链表是一种递归的数据结构,他或者为null,或者是指向像一个节点的(node)的引用,该节点含
阅读全文

浙公网安备 33010602011771号