Асинхронная инициализация ресурсов

Помогите выбрать оптимальный вариант решения следующий проблемы: есть класс SomeClass, содержащий некоторые ресурсы - коллекции в виде автоматических св-в.

У класса есть вот таких 2-а метода:

private async Task<SomeClass> InitializeResourcesAsync(string connectionString)
{
    SomeFactory = SomeFactory.GetInstance(connectionString);
    SomeResource = await SomeFactory.SomeResource().TryReadAllAsync();
    ...
    return this;
}
public static Task<SomeClass> CreateInstanceAsync(string connectionString) => new SomeClass().InitializeResourcesAsync(connectionString);

И есть несколько классов, которым нужны эти ресурсы для выборки и последующий обработки этих данных.

Вот, допустим, возьмем первый класс FirstClass, где эти ресурсы используются. Там есть несколько методов, где происходит выборка и работа с данными из ресурсов.

В чем мой вопрос: поскольку у SomeClass метод, инициализирующий объект этого класса, возвращает Task<T>, он должен вызываться, соответственно, в методе, помеченным async. Где (на каком этапе) мне в FirstClass нужно вызвать метод инициализации объекта класса SomeClass? Не могу это понять, подскажите.


Ответы (0 шт):