/// <summary> /// 获取当前配置 /// <para></para> /// </summary> public static FileConfigurationRepo GetCurrentConfiguration() { var file = GetCurrentConfigurationFile(); FileConfigurationRepo fileConfigurationRepo = ConfigurationFactory.FromFile(file.FullName); return(fileConfigurationRepo); }
public void ReadDirectly() { const string dcc = "configs.01.dcc"; FileConfigurationRepo repo = ConfigurationFactory.FromFile(dcc); var configs = repo.CreateAppConfigurator().Of <FakeConfiguration>(); _ = configs.Key; }
public async Task ReadWithFileChangeChecking() { const string dcc = "configs.02.dcc"; FileConfigurationRepo repo = ConfigurationFactory.FromFile(dcc); var configs = repo.CreateAppConfigurator().Of <FakeConfiguration>(); await repo.ReloadExternalChangesAsync().ConfigureAwait(false); _ = configs.Key; }
public static IAppConfigurator GetAppConfigurator() { if (_appConfigurator is null) { var fileConfigurationRepo = new FileConfigurationRepo(ConfigurationFile.FullName); _appConfigurator = fileConfigurationRepo.CreateAppConfigurator(); } return(_appConfigurator); }
/// <summary> /// 断言文件同步次数。 /// </summary> /// <param name="repo">配置仓库。</param> /// <param name="countForHighResolutionFileSystem">在支持高精度时间的文件系统上的同步次数(严格相等)。</param> /// <param name="countForOtherFileSystems">在不支持高精度时间的文件系统上的同步次数(不大于此值)。</param> private static void AssertFileSyncingCount(FileConfigurationRepo repo, int countForHighResolutionFileSystem, int countForOtherFileSystems) { if (repo.SupportsHighResolutionFileTime) { // 支持高精度时间的文件系统上,同步次数固定。 Assert.AreEqual(countForHighResolutionFileSystem, repo.FileSyncingCount); } else { // 在不支持高精度时间的文件系统上,同步次数不大于值(多出的一次是因为并发时机发生时,无法确定文件的新旧)。 Assert.IsTrue(repo.FileSyncingCount <= countForOtherFileSystems); } }