public async Task TestSerialisation()
        {
            string file = Path.GetTempFileName();
            JsonSettingsService service = await JsonSettingsService.CreateAsync(file);

            await service.RegisterSettingAsync("integer", 0);

            await service.RegisterSettingAsync("string", "string");

            await service.RegisterSettingAsync <object>("object");

            await service.StoreAsync();

            JsonSettingsService service2 = await JsonSettingsService.CreateAsync(file);

            Assert.AreEqual(0, await service2.GetSettingAsync <int>("integer"));
            Assert.AreEqual("string", await service2.GetSettingAsync <string>("string"));
            Assert.True(await service2.IsRegisteredAsync("object"));
        }
Example #2
0
        public void RegisterTypes(IContainerRegistry containerRegistry)
        {
            _loggerFacade.Log("Registring settings extensions.", Category.Info, Priority.None);
            _container.Instance.AddNewExtension <SettingsServiceContainerExtension>();

            string settingsPath = Path.Combine(
                Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
                Assembly.GetEntryAssembly().GetCustomAttribute <AssemblyProductAttribute>().Product,
                "settings.json"
                );



            _loggerFacade.Log("Creating json settings service.", Category.Info, Priority.None);
            _loggerFacade.Log($"Loading settings from \"{settingsPath}\"", Category.Debug, Priority.None);
            ISettingsService settingsService = AsyncContext.Run(() => JsonSettingsService.CreateAsync(settingsPath));

            _loggerFacade.Log("Settings loaded", Category.Info, Priority.None);

            containerRegistry.RegisterInstance(settingsService);

            _loggerFacade.Log("Module loaded", Category.Info, Priority.None);
        }