摘要: 单例模式是23设计中创建模式的第一个,也是入门的设计模式,好多net 程序员 工作7-8 你让他写3-4个设计模式,我敢说,很多人可能都写不出来,因为net 封装的太厉害了,很多程序员有种惰性,总是"约定俗成" 我就这么用的。C# 语言是一款优秀的语言,并不比java差,只是java 开源早,生态环 阅读全文
posted @ 2021-10-24 08:48 非著名架构师 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 1 全局注册 2 ServiceFilter,IOC注册 3 TypeFilter 4 4IFilterFactiory 自定义 ServiceFilter 是利用ioc 容器获取实例 public IFilterMetadata CreateInstance(IServiceProvider se 阅读全文
posted @ 2021-10-14 20:55 非著名架构师 阅读(78) 评论(0) 推荐(0) 编辑
摘要: UseAuthentication 就是鉴权 找出解析请求携带的信息 UseAuthorization 授权 权限检查,看看有没有权限 我们先来同步几个知识。 policy 是策略 满足什么条件 不可以叠加 roles 是角色 特殊的policy 也是规则只是微软封装好了的特殊策略。 roles 可 阅读全文
posted @ 2021-10-10 19:04 非著名架构师 阅读(1953) 评论(0) 推荐(0) 编辑
摘要: 不同的类,相同的方法名,我们都会想到抽象类,但是每个抽象方法里面又有很多if else 的各种条件 我们程序怎么应对呢。这时候我们的访问者模式就出来了。 首先我们定义一个学生类,里面有个抽象方法,抽象方面有个接口 来转移我们方法的内容 public abstract class Student { 阅读全文
posted @ 2021-10-09 10:47 非著名架构师 阅读(47) 评论(0) 推荐(0) 编辑
摘要: UseRouting() 将请求与端点匹配,路由规则UseEndpoints()执行匹配的端点 UseRouting 去匹配路由 UseEndpoints 找出mvc 的所有特性 方法 控制 去执行路由。 微软之所以这样设计2个中间件,是为了更好的扩展,比如我们之前aspnet mvc 有了路由匹配 阅读全文
posted @ 2021-10-08 21:08 非著名架构师 阅读(4647) 评论(0) 推荐(0) 编辑
摘要: 使用 步骤 1 nuget Microsoft.Extensions.Caching.Redis 2注册服务+注入 services.AddSession() ; services.AddDistributedRedisCache (options =>{options.Configuration 阅读全文
posted @ 2021-10-08 16:50 非著名架构师 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 我们在net core 中经常看到这样的写法 在ConfigureServices 里面注册一个 services.AddSession(); 然后在Configure app.UseSession(); 本质上 Add 集中注册 就是在ioc 注册对应服务关系 option 用来传值 option 阅读全文
posted @ 2021-10-07 19:30 非著名架构师 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 直接通过反射 找到类 RequestDelegate 和 InvokeAsync 这2个都是固定写法 框架帮我们写死的 ,如果看是不是中间件,框架先检查 参数 有没有InvokeAsync方法和第一个参数必须是RequestDelegate 源码如下 : app.UseMiddleware<Onet 阅读全文
posted @ 2021-10-07 16:24 非著名架构师 阅读(204) 评论(0) 推荐(0) 编辑
摘要: //直接单例,读出来就缓存,不支持数据变化,性能高--只能度默认名字 private IOptions<EmailOption> _optionsDefault; //只读一次,写入缓存 但是支持数据修改,靠的是监听文件更新(onchange)数据,实时变更 private IOptionsMoni 阅读全文
posted @ 2021-10-07 09:15 非著名架构师 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 昨天更新了vs2022 版本 .NET 6 预览版 7 在创建web mvc 项目的时候发现,Program.cs 和Startup.cs 合并只有一个Program.cs 一个文件,有点不适应,以为创建项目错了。。但仔细发现,现在的版本更简洁了。 var builder = WebApplicat 阅读全文
posted @ 2021-09-25 11:31 非著名架构师 阅读(246) 评论(0) 推荐(0) 编辑