Udostępnij za pośrednictwem


Dostawcy typów

Dostawca typów języka F# to składnik, który udostępnia typy, właściwości i metody do użycia w programie. Dostawcy typów generują typy, które są nazywane podanymi typami, które są generowane przez kompilator języka F# i są oparte na zewnętrznym źródle danych.

Na przykład dostawca typów języka F# dla języka SQL może generować typy reprezentujące tabele i kolumny w relacyjnej bazie danych. W rzeczywistości właśnie to robi dostawca typów SQLProvider.

Podane typy zależą od parametrów wejściowych Type Providera. Takie dane wejściowe mogą być przykładowym źródłem danych (takim jak plik schematu JSON), adresem URL wskazującym bezpośrednio do usługi zewnętrznej lub parametrami połączenia ze źródłem danych. Dostawca typów może również zapewnić, że grupy typów są rozszerzane tylko na żądanie; oznacza to, że są one rozszerzone, jeśli typy są rzeczywiście przywoływane przez program. Umożliwia to bezpośrednią integrację na żądanie przestrzeni informacyjnych na dużą skalę, takich jak rynki danych online w sposób silnie typizowany.

Dostawcy typów generowania i wymazywania

Dostawcy typów występują w dwóch formach: generatywni i usuwani.

Generatywni dostawcy typów tworzą typy, które mogą być zapisane jako typy platformy .NET w zestawie, gdzie zostały stworzone. Dzięki temu mogą być wykorzystywane przez kod w innych bibliotekach. Oznacza to, że typowa reprezentacja źródła danych musi być ogólnie taka, która jest możliwa do reprezentowania przy użyciu typów platformy .NET.

Dostawcy typów wymazujących generują typy, które mogą być używane tylko w zestawie lub projekcie, z którego są generowane. Typy są efemeryczne; oznacza to, że nie są one zapisywane w zestawie i nie mogą być używane przez kod w innych zestawach. Mogą zawierać elementy opóźnione, dzięki czemu można używać dostępnych typów z potencjalnie nieskończonej przestrzeni informacyjnej. Są one przydatne w przypadku używania małego podzestawu dużego i połączonego źródła danych.

Często używane dostawcy typów

Następujące powszechnie używane biblioteki zawierają Type Providers do różnych zastosowań.

  • Plik FSharp.Data zawiera dostawców typów dla formatów i zasobów dokumentów JSON, XML, CSV i HTML.
  • Dostawca SQLProvider zapewnia silnie typizowany dostęp do relacyjnych baz danych za pośrednictwem mapowania obiektów i zapytań LINQ języka F# względem tych źródeł danych.
  • FSharp.Data.SqlClient ma zestaw dostawców typów, które umożliwiają weryfikację poprawności osadzania zapytań T-SQL w F# na etapie kompilacji.
  • Dostawca typu usługi Azure Storage udostępnia typy obiektów blob platformy Azure, tabel i kolejek, umożliwiając dostęp do tych zasobów bez konieczności określania nazw zasobów jako ciągów w całym programie.
  • FSharp.Data.GraphQL zawiera element GraphQLProvider, który udostępnia typy z serwera GraphQL określonego przez URL.

W razie potrzeby możesz utworzyć własnych dostawców typów niestandardowych lub dostawców typów referencyjnych utworzonych przez inne osoby. Załóżmy na przykład, że organizacja ma usługę danych zapewniającą dużą i rosnącą liczbę nazwanych zestawów danych, z których każda ma własny stabilny schemat danych. Możesz utworzyć dostawcę typów, który odczytuje schematy i przedstawia najnowsze dostępne zestawy danych programistom w sposób silnie typizowany.

Zobacz także