Пример использования провайдера типа 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 кажется хорошей отправной точкой).

Ответы на вопрос(1)

Ваш ответ на вопрос