示例#1
0
        public static IConfigurationBuilder AddLockFile(this IConfigurationBuilder builder, IFileProvider provider, string path, string basePath, bool optional, bool reloadOnChange)
        {
            Check.NotNull(builder, "builder");
            //获取一个环境变量的路径
            Check.CheckCondition(() => string.IsNullOrEmpty(path), "path");
            path = CPlatform.Utilities.EnvironmentHelper.GetEnvironmentVariable(path);
            if (provider == null && Path.IsPathRooted(path))
            {
                provider = new PhysicalFileProvider(Path.GetDirectoryName(path));
                path     = Path.GetFileName(path);
            }
            //建立CacheConfigurationSource类,此类继承了FileConfigurationSource接口,并重写加入了json转换方法
            var source = new LockConfigurationSource
            {
                FileProvider   = provider,
                Path           = path,
                Optional       = optional,
                ReloadOnChange = reloadOnChange
            };

            builder.Add(source);
            if (!string.IsNullOrEmpty(basePath))
            {
                builder.SetBasePath(basePath);
            }
            AppConfig.Path          = path;
            AppConfig.Configuration = builder.Build();
            return(builder);
        }
 public LockConfigurationProvider(LockConfigurationSource source) : base(source)
 {
 }