У меня есть три функции в модуле SetBehaviour, который вызывает GetBehviour, который читает текстовый файл и десериализует его обратно к моим типам и возвращает его обратно в useCases. Затем я получаю доступ к объекту, который я хочу, «let behavior = useCases.Item (useCaseIdentifier)»F # заданное значение функции
Мой вопрос: есть ли способ установить «GlobalBehavior» на возвращаемое значение «SetBehaviour», поэтому я могу назвать «GlobalBehaviour» 'непосредственно, не просматривая чтение текстового файла и десериализацию каждый раз?
let GlobalBehaviour = //The return value of SetBehaviour here
let GetBehaviour =
let useCases = Data.ReadUseCases
let deserializedUseCases = JsonConvert.DeserializeObject<Map<string,Types.UseCase>>(useCases)
deserializedUseCases
let SetBehaviour useCaseIdentifier =
let useCases = GetBehaviour
let behavior = useCases.Item(useCaseIdentifier)
behavior
Вы пытаетесь кэшировать результат после того, как функция вызывается? Или вы просто хотите инициализировать значение некоторым «по умолчанию» при загрузке приложения? –
Вы хотите, чтобы SetBehavior помнил, что было прочитано из текстового файла? С другой стороны, почему «SetBehavior» не назвал нечто более подходящим, как «GetUsecaseById»? – Christian
Да, я пытаюсь кэшировать результат SetBehaviour в GlobalBehaviour. Поэтому я могу вызвать Module.GlobalBehaviour из другого модуля. –