СЭД «ДЕЛО»
Руководство пользователя
×

В.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);
Онлайн помощь создана в Dr.Explain