Пример использования провайдера типа F #
У меня немного трудное время, чтобы получить контроль над типами провайдеров. Я хотел бы получить некоторые отзывы о полезности подхода с использованием поставщиков типов для следующего варианта использования.
К сожалению, наш API телеметрии возвращает объекты какList<Dictionary<string, object>>
. Dictionary
имеет строки для ключей (то есть имен столбцов), а значением может быть любой объект (хотя обычно это какой-то тип значения в пространстве имен System). Также есть метод, который возвращаетDictionary<string, Type>
коллекция, представляющая схему (имя столбца -> тип привязки). Мы обычно используем эти данные для специального / исследовательского анализа и отчетности.
F # с провайдером типа R представляется отличным оружием для вышеупомянутого анализа. Просто доступ к данным путем ввода имен столбцов в виде строк и приведения объектов действительно мешает. Я хотел бы создать поставщика типов, который будет из данного словаря (строка подключения, которая создает словарь) создавать сильные типы. Например. из
new List<Dictionary<string, object>>
{
new Dictionary<string, object> { {"a", 1}, {"b","data"}, {"c", DateTime.UtcNow } },
new Dictionary<string, object> { {"a", 3}, {"b","data2"}, {"c", DateTime.UtcNow } }
}
Я хотел бы получить
type MyObject
member a : int
member b : string
member c : DateTime
List<MyObject> ...
Это правильное использование поставщиков типа? Как я уже сказал, я новичок в этой области, поэтому любые отзывы будут оценены. Кроме того, если у вас есть примеры подобных проблем, которые я мог бы использовать для быстрого поиска с нуля, пожалуйста, поделитесь (провайдер типа CSV кажется хорошей отправной точкой).