摘要:
源码相关 MediaR是一个中介者库,里面实现了请求响应/发布订阅两种模式。 内部相当于一个容器,由源码可知,内部创建时注入了一个容器委托(从容器中获得对应的实现接口的实例)。 // 这里注入了一个委托,用于是从服务容器中获取对应项实例。 public Mediator(ServiceFactory 阅读全文
摘要:
最近多次遇到循环引用的问题,感觉于找到一种骚操作解决,懒加载。 C# 中的Lazy<> 类型,只有在使用到这个值的时候才会去实例化,在此之前将会保存实例化的委托,于是可以利用这种方式解决依赖循环,当然,缺点是不能在构造函数中使用实例,否则又会进入到循环了。 一、首先创建一个接口ICircular<> 阅读全文
摘要:
ConfigurationProvider 提供配置源 ConfigurationBuilder 用于构建IConfiguration,将不同的配置类型转换为统一的IConfiguration类型。 内部采用类似键值对的形式,保存所有的叶子节点,这也就是为什么我们可以直接采用 configurati 阅读全文
摘要:
IFileProvider 命名空间在 Microsoft.Extensions.FileProviders。 这个接口主要有三个方法: GetDirectoryContents 列出虚拟路径上的文件夹,GetFileInfo文件信息,可以使用CreateReadStream读取相应的文件流。wat 阅读全文
摘要:
仓储模式: 仓储模式源自2004年起的领域驱动设计,它主要在领域层和持久层的提供数据抽象层,是一种数据访问模式,屏蔽底层的存储细节(如:crud的sql详细信息,将这些sql写在另一个类中,以此屏蔽存储细节sql),让我们更关注领域层逻辑(业务逻辑在领域层中)。 应该为每一个实体提供一个仓储,当我们 阅读全文
摘要:
中介者模式是一个行为设计模式,它允许我们公开一个统一的接口,系统的 不同部分 可以通过该接口进行 通信,而 不需要 显示的相互作用; 主要解决:对象与对象之间存在大量的关联关系,这样势必会导致系统的结构变得很复杂,同时若一个对象发生改变,我们也需要跟踪与之相关联的对象,同时做出相应的处理。 关键:各 阅读全文
摘要:
CQRS(Command Query Responsibility Segregation),一种奇怪的开发体验,除了频繁的切换文件夹,但整个业务思路是非常清晰的的。 一、什么是CQRS 在CQRS中,C (Command) 是用来进行CUD的,Q (Query)则是对应查询。 每一个Command 阅读全文
摘要:
提前需要知道的: 第一:Grpc依赖Http2 第二:Nginx不支持上游Http2,也就是HTTP/2 协议的的站点,仅支持客户端Http2。 第三:Nginx 在 1.13.10支持Grpc协议 第四:openssl 版本必须openssl-1.1.1f 第五:不使用ssl,则同一端口不支持ht 阅读全文
摘要:
验证的多种方式 一、Data Annotation 这种方式就是微软已经实现的attribute,使用十分方便。 如: [Display(Name = "身份")] [Required(ErrorMessage = "{0}必须不能为空")] public string Id { get; set; 阅读全文
摘要:
CSRedisCore是国内大佬出品的一个Redis-Cli-SDK。 Github地址:https://github.com/2881099/csredis 使用此插件作为分布式缓存也十分简单。 一、asp.net core 3.0中使用分布式缓存。 注意:IDistributedCache是as 阅读全文