У меня есть немного трудного времени, чтобы получить доступ к поставщикам типов. Я хотел бы получить некоторую обратную связь о полезности подхода поставщика типов для последующего использования.F # тип провайдер use case
Весьма к сожалению наш API телеметрии возвращает объекты как List<Dictionary<string, object>>
. Dictionary
имеет строки для ключей (значения имен столбцов), а значение может быть любым объектом (хотя обычно это тип значения в пространстве имен System). Кроме того, существует метод, который возвращает коллекцию Dictionary<string, Type>
, которая представляет схему (имя столбца -> привязка типа). Мы обычно используем эти данные для ad-hoc/исследовательского анализа и отчетности.
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, похоже, является хорошей отправной точкой).