Przypadek użycia dostawcy typu F #

Mam trochę trudu, aby opanować dostawców typu. Chciałbym uzyskać informację zwrotną na temat użyteczności podejścia typu dostawca dla następujących przypadków użycia.

Niestety nasz interfejs telemetryczny zwraca obiekty jakoList<Dictionary<string, object>>. Dictionary ma łańcuchy dla kluczy (co oznacza nazwy kolumn), a wartość może być dowolnym obiektem (choć zazwyczaj jest to jakiś typ wartości w przestrzeni nazw System). Istnieje również metoda, która powracaDictionary<string, Type> kolekcja reprezentująca schemat (nazwa kolumny -> powiązanie typu). Zwykle używamy tych danych do analizy ad hoc / eksploracyjnej i raportowania.

F # z dostawcą typu R wydaje się być świetną bronią do wyżej wspomnianej analizy. Dostęp do danych przez wpisanie nazw kolumn jako ciągów i obiektów rzutujących naprawdę przeszkadza. Chciałbym utworzyć dostawcę typu, który z podanego słownika (ciągu połączenia, który tworzy słownik) tworzy silne typy. Na przykład. z

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 } }
}

chciałbym dostać

type MyObject
    member a : int
    member b : string
    member c : DateTime

List<MyObject> ...

Czy jest to odpowiednie wykorzystanie dostawców typu? Jak powiedziałem, jestem całkiem nowy w tej dziedzinie, więc wszelkie opinie będą mile widziane. Ponadto, jeśli masz jakieś przykłady podobnych problemów, które mógłbym wykorzystać do szybkiego uzyskania dostępu do ziemi, proszę się podzielić (dostawca typu Csv wydaje się być dobrym punktem wyjścia).

questionAnswers(1)

yourAnswerToTheQuestion