摘要: 新建控制台应用程序👉命名LoggingSimpleDemo using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Lo 阅读全文
posted @ 2022-02-08 23:59 hiwwwk 阅读(106) 评论(0) 推荐(0)
摘要: 选项框架关键类型 IOptionsMonitor IOptionsSnapshot 场景 范围作用域类型使用IOptionsSnapshot 单例服务使用IOptionsMonitor 通过代码更新选项 IPostConfigureOptions 示例 延续使用上一节代码,稍微做些特殊处理将Orde 阅读全文
posted @ 2022-02-08 23:58 hiwwwk 阅读(86) 评论(0) 推荐(0)
摘要: 三种验证方法 直接注册验证函数 实现IValidateOptions 使用Microsoft.Extensions.Options.DataAnnotations 示例 直接注册验证函数继续使用上一节代码,需要稍微修改一点代码。 using Microsoft.Extensions.Configur 阅读全文
posted @ 2022-02-08 23:58 hiwwwk 阅读(76) 评论(0) 推荐(0)
摘要: 特性 支持单例模式读取配置 支持快照 支持配置变更通知 支持运行时动态修改选项值 设计原则 接口分离原则(LSP),我们的类不应该依赖它不适用的配置 关注点分离(SOC),不同组件、服务、类之间的配置不应相互依赖或耦合 建议 为我们的服务设计XXXOptions 使用IOptions<XXXOpti 阅读全文
posted @ 2022-02-08 23:57 hiwwwk 阅读(52) 评论(0) 推荐(0)
摘要: 扩展步骤 实现IConfigurationSource 实现IConfigurationProvider 实现AddXXX扩展方法 示例 新建控制台应用程序👉命名ConfigurationCustom👉引入包Microsoft.Extensions.Configuration👉新建三个类:My 阅读全文
posted @ 2022-02-08 23:54 hiwwwk 阅读(111) 评论(0) 推荐(0)
摘要: 要点 支持将配置值绑定到已有对象 支持将配置值绑定到私有属性上 默认情况下我们只能绑定public的 示例 继续沿用我们上一次创建的控制台应用程序,新添加一个包Microsoft.Extensions.Configuration.Binder首先我们新建一个类,来作为我们接受配置的实例 class 阅读全文
posted @ 2022-02-08 23:53 hiwwwk 阅读(62) 评论(0) 推荐(0)
摘要: 场景 需要记录配置源的变更时 需要在配置数据变更时触发特定操作时 当我们需要追踪我们的配置发生变化时,在配置发生变化时我们需要执行一些特定的操作的时候,这个时候就需要我们来进行一定的编码,来跟踪我们配置的变化 关键方法 IChangeToken IConfiguration.GetReloadTok 阅读全文
posted @ 2022-02-08 23:52 hiwwwk 阅读(111) 评论(0) 推荐(0)
摘要: 文件配置提供程序 Microsoft.Extensions.Configuration.Ini Microsoft.Extensions.Configuration.Json Microsoft.Extensions.Configuration.NewtonsoftJson Microsoft.Ex 阅读全文
posted @ 2022-02-08 23:51 hiwwwk 阅读(103) 评论(0) 推荐(0)
摘要: 适用场景 在Docker中运行时 在Kubernetes中运行时 需要设置ASP.NET Core的一些内置特殊配置时 我们当时一个操作系统会跑多个应用程序,应用程序注入配置的方式一般都是通过文件或者说是命令行的方式来注入的。现在在容器化的环境下面,有了Docker的隔离能力,就意味着每一个应用程序 阅读全文
posted @ 2022-02-08 23:49 hiwwwk 阅读(139) 评论(0) 推荐(0)
摘要: 核心组件包 Microsoft.Extensions.Configuration.Abstractions Microsoft.Extensions.Configuration 在NuGet添加 配置框架 以**key-value**字符串键值对的方式抽象了配置 支持从不同的数据源读取配置 命令行、 阅读全文
posted @ 2022-02-08 23:48 hiwwwk 阅读(68) 评论(0) 推荐(0)
摘要: 支持的命令格式 无前缀的 **key=value** 模式 双中横线模式 **--key==value** 或 **--key value** 正斜杠模式 **/key=value**** **或 **/key value** 备注: 等号分隔符和空格分隔符不能混用 命令替换模式 这个模式是指我们可 阅读全文
posted @ 2022-02-08 23:48 hiwwwk 阅读(62) 评论(0) 推荐(0)
摘要: 什么情况下需要引入第三方容器组件 基于名称的注入 我们需要把一个服务,按照名称来区分它不同的实现的时候 属性注入 之前提到过,我们的注入方式有FromServices的方式,还有构造函数入参的方式,直接可以把服务注册到某一个类的属性里面去。 子容器 子容器其实可以理解成之前讲过的Scope,还可以用 阅读全文
posted @ 2022-02-08 23:47 hiwwwk 阅读(164) 评论(0) 推荐(0)
摘要: 作用域 IServiceScope 作用域主要是由IServiceScope这个接口来承载的 实现IDisposable接口类型的释放 对于实现了IDisposable类的实例的对象,我们容器会负责对其生命周期的管理,当我们使用完毕以后,它会去释放这些对象。 DI(容器)只负责由其创建的对象的实例 阅读全文
posted @ 2022-02-08 23:45 hiwwwk 阅读(197) 评论(0) 推荐(0)
摘要: 为什么要使用依赖注入框架 依赖注入框架其实也就是我们通常所说的IOC框架,这个框架可以帮助我们来管理类与类之间的依赖关系。 借助依赖注入框架,我们可以轻松管理类之间的依赖,帮助我们在构建应用时遵循设计原则,确保代码的可维护性和可扩展性。 ASP.NET Core的整个架构中,依赖注入框架提供了对象创 阅读全文
posted @ 2022-02-08 23:38 hiwwwk 阅读(107) 评论(0) 推荐(0)
摘要: ![](https://img2022.cnblogs.com/blog/1929973/202202/1929973-20220208232936104-683695610.png) 阅读全文
posted @ 2022-02-08 23:31 hiwwwk 阅读(123) 评论(0) 推荐(0)