Асинхронная инициализация ресурсов
Помогите выбрать оптимальный вариант решения следующий проблемы: есть класс 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? Не могу это понять, подскажите.