В.6 Примеры
Для работы через AppSettings класс должен быть immutable. Допускается только использование свойств{get; private set;} или { get; init; }.
В качестве коллекций допускается только использование IReadOnlyList и IReadOnlyDictionary.
Запись класса через интерфейс:
|
// запись класса через интерфейс
using Eos.Platform.AppSettings;
var appSettingsService = serviceProvider.GetRequiredService<IAppSettingsService>();
await appSettingsService.SetAsync(someClass, new MutationContext(...), "instanceName");
//Либо
await appSettingsService.SetAsync(typeof(SomeClass), someObject, new MutationContext(...), "instanceName");
|
Чтение класса через интерфейс:
|
// чтение класса через интерфейс
using Eos.Platform.AppSettings;
var appSettingsService = serviceProvider.GetRequiredService<IAppSettingsService>();
var someClass = await appSettingsService.GetAsync<SomeClass>("instanceName");
//Либо
var someClass = await appSettingsService.GetAsync(typeof(SomeClass), "instanceName");
|
Чтение словаря объектов определенного типа через интерфейс (ключ словаря - имя экземпляра):
|
// чтение словаря объектов определенного типа через интерфейс
using Eos.Platform.AppSettings;
var appSettingsService = serviceProvider.GetRequiredService<IAppSettingsService>();
var someClassList = await appSettingsService.GetListAsync<SomeClass>();
//Либо
var someClassList = await appSettingsService.GetListAsync(typeof(SomeClass));
|
Получение копии объекта с использованием Default instance:
|
// получение копии объекта с использованием Default instance
using Eos.Platform.AppSettings;
var appSettingsService = serviceProvider.GetRequiredService<IAppSettingsService>();
var someClass = await appSettingsService.GetAsync<SomeClass>("instance");
var defaultSomeClass = await appSettingsService.GetAsync<SomeClass>();
var copy = AppSettingsHelper.DeepCopy(someClass, defaultSomeClass);
|
