首页 > 其他分享 >netcore-configuration

netcore-configuration

时间:2023-05-27 10:12:46浏览次数:22  
标签:IConfigurationBuilder source builder netcore Source Add configuration public

整个流程整理下。这种简单的Add可以运行。
1先创建ConfigurationSource继承FileConfigurtaionSource
    1)ConfigurationBuilder.Add(Source);
    2)Builder()->IConfigurationProvider Build(IConfigurationBuilder builder);产生Provider对象。加到ConfigurationRoot中。

2 创建ConfigurationProvide继承FileConfigurationProvide
3 具体使用builder.Configuration.Add<MyConfigurationSource>(config => config.Path="MyFile.json");

4 创建扩展方法*ConfigurationExtension。需要传递

public FileConfigurationProvider(FileConfigurationSource source)
        {
            ThrowHelper.ThrowIfNull(source);
 
            Source = source;
 
            if (Source.ReloadOnChange && Source.FileProvider != null)
            {
                _changeTokenRegistration = ChangeToken.OnChange(
                    () => Source.FileProvider.Watch(Source.Path!),
                    () =>
                    {
                        Thread.Sleep(Source.ReloadDelay);
                        Load(reload: true);
                    });
            }
        }



1关于:ConfigurationBuilder : IConfigurationBuilder
public IConfigurationBuilder Add(IConfigurationSource source)
{
            ThrowHelper.ThrowIfNull(source);
 
            Sources.Add(source);
            return this;
 }
2ConfigurationProvide
public class JsonConfigurationProvider : FileConfigurationProvider
{
        /// <summary>
        /// Initializes a new instance with the specified source.
        /// </summary>
        /// <param name="source">The source settings.</param>
        public JsonConfigurationProvider(JsonConfigurationSource source) : base(source) { }
 
        /// <summary>
        /// Loads the JSON data from a stream.
        /// </summary>
        /// <param name="stream">The stream to read.</param>
        public override void Load(Stream stream)
        {
            try
            {
                Data = JsonConfigurationFileParser.Parse(stream);
            }
            catch (JsonException e)
            {
                throw new FormatException(SR.Error_JSONParseError, e);
            }
        }
}

再看这个主要方法:路径必须存在才行。。。
public static IConfigurationBuilder AddJsonFile(this IConfigurationBuilder builder, IFileProvider? provider, string path, bool optional, bool reloadOnChange)
{
            ThrowHelper.ThrowIfNull(builder);
 
            if (string.IsNullOrEmpty(path))
            {
                throw new ArgumentException(SR.Error_InvalidFilePath, nameof(path));
            }
         
            return builder.AddJsonFile(s =>
            {
                s.FileProvider = provider;
                s.Path = path;
                s.Optional = optional;
                s.ReloadOnChange = reloadOnChange;
                s.ResolveFileProvider();
            });
 }

 

标签:IConfigurationBuilder,source,builder,netcore,Source,Add,configuration,public
From: https://www.cnblogs.com/Insist-Y/p/17436326.html

相关文章

  • jmeter之JDBC Connection Configuration 请求
    1、下载mysqljdbc驱动包(注:驱动包的版本一定要与你数据库的版本匹配,驱动版本低于mysql版本有可能会导致连接失败报错)我这里下载的是mysql-connector-j-8.0.33.jar下载完后,将jira包放在D:\jmeter\apache-jmeter-5.2.1\lib目录下,这样就jmeter中就有驱动了,重启jmeter  2.线程......
  • How to fix CMake error Could not find a package configuration file provided by
    CMakeErrorat/usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake:117(find_package):Couldnotfindapackageconfigurationfileprovidedby"boost_filesystem"(requestedversion1.71.0)withanyofthefollowingnames:boos......
  • Spring6 探析之@Configuration 注解
    Spring6探析之@Configuration注解介绍@Configuration注解大家都不陌生,该注解有以下特点必须在类上使用能够将被注解的类加载到IOC容器里能够将类中被@Bean注解标记的方法加载到IOC容器里@Configuration有一些参数,其中最值得关注的是proxyBeanMethods,该参数值默认为tr......
  • 【.NetCore】结合MasaDcc实现动态配置小程序消息模板并进行推送消息
    仅适用于更换小程序模板(属于换汤不换药)。可实现多环境对应不同的小程序模板一.配置文件格式"MiniProgramConfig":{"Token":"r8Z6weJVCb0","EncodingAESKey":"MhemkNp9DZXqe24A","AppId":"wxff9df85f87","App......
  • 基于.NetCore开源的Windows的GIF录屏工具
    推荐一个Github上Start超过20K的超火、好用的屏幕截图转换为GIF动图开源项目。项目简介这是基于.NetCore+WPF开发的、开源项目,可将屏幕截图转为GIF动画。它的核心功能是能够简单、快速地截取整个屏幕或者选定区域,并将其转为GIF动画,还支持自定义GIF动画效果、字幕、背......
  • xiaofeng.NET系列之 netcore c#快速导出数据CSV格式 winfrom wpf
    一个导出buttonnuget搜索 usingXiaoFeng.IO;usingXiaoFeng; privatevoidbutton1_Click(objectsender,EventArgse){varsavedlg=newFolderBrowserDialog(){Description="选择保存的路径",......
  • 2..NetCore部署Linux环境搭建
    1.查考链接 https://www.cnblogs.com/wugh8726254/p/15231372.html2.https://zhuanlan.zhihu.com/p/3447148063.https://blog.csdn.net/qq_39173779/article/details/1295077924.https://blog.csdn.net/SIXGODrr/article/details/1253723385.https://zhuanlan.zhihu.com/p/59......
  • 关于SpringBoot AutoConfiguration
    (1)如何导入的自动配置类首先我们得从@SpringBootApplication注解入手。@SpringBootApplicationpublicclassSpringBootDemoApplication{publicstaticvoidmain(String[]args){SpringApplication.run(SpringBootDemoApplication.class,args);......
  • 记一次将 .netcore 项目用 IIS 进程调试
    环境:win10,VisualStudio2022 在.netframework年代,我们都习惯用iis进程调试代码。因为用F5调试代码效率太低下。现在.netcore时代,这种好习惯可不能丢。简单记录一下,我的操作过程。 1.首先用IIS挂载网站,看能不能把发布的好的网站跑起来2.其次用IIS增加网站,......
  • 8 Kubernetes Scanner to find Security Vulnerability and Misconfiguration
    https://geekflare.com/kubernetes-security-scanner/YouareusingKubernetes.Great!Howaboutitssecurity?WeallknowthatKuberneteshasbecomeoneofthebestcontainerorchestrationplatformstoday.Morethan80%oforganizationstodayareleveraging......