Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein F#-Typanbieter ist eine Komponente, die Typen, Eigenschaften und Methoden für die Verwendung in Ihrem Programm bereitstellt. Typanbieter generieren, was als bereitgestellte Typen bezeichnet wird, die vom F#-Compiler generiert werden und auf einer externen Datenquelle basieren.
Beispielsweise kann ein F#-Typanbieter für SQL Typen generieren, die Tabellen und Spalten in einer relationalen Datenbank darstellen. Tatsächlich geschieht dies vom SQLProvider-Typanbieter .
Die bereitgestellten Typen sind von Eingabeparametern für einen Typanbieter abhängig. Eine solche Eingabe kann eine Beispieldatenquelle (z. B. eine JSON-Schemadatei), eine URL sein, die direkt auf einen externen Dienst verweist, oder eine Verbindungszeichenfolge mit einer Datenquelle. Ein Typanbieter kann auch sicherstellen, dass Gruppen von Typen nur bei Bedarf erweitert werden; Das heißt, sie werden erweitert, wenn die Typen tatsächlich von Ihrem Programm referenziert werden. Dies ermöglicht die direkte, bedarfsabhängige und stark typisierte Integration von umfangreichen Informationsquellen, z. B. Onlinedatenanbietern.
Generative und gelöschte Typanbieter
Typanbieter gibt es in zwei Arten: generativ und gelöscht.
Generative Typanbieter erzeugen Typen, die als .NET-Typen in die Assembly geschrieben werden können, in der sie erstellt werden. Dies ermöglicht, dass sie von Code in anderen Assemblys genutzt werden können. Dies bedeutet, dass die typierte Darstellung der Datenquelle im Allgemeinen eine sein muss, die mit .NET-Typen dargestellt werden kann.
Löschende Typanbieter erzeugen Typen, die nur in der Assembly oder in dem Projekt verwendet werden können, in der/dem sie generiert werden. Die Typen sind kurzlebig; d. h., sie werden nicht in eine Assembly geschrieben und können nicht vom Code in anderen Assemblies genutzt werden. Sie können verzögerte Member enthalten, was es Ihnen erlaubt, bereitgestellte Typen aus einem potenziell unendlichen Informationsbereich zu verwenden. Sie sind nützlich für die Verwendung einer kleinen Teilmenge einer großen und miteinander verbundenen Datenquelle.
Häufig verwendete Typanbieter
Die folgenden weitverwendeten Bibliotheken enthalten Typanbieter für unterschiedliche Zwecke:
- FSharp.Data enthält Typanbieter für JSON-, XML-, CSV- und HTML-Dokumentformate und -ressourcen.
- SQLProvider bietet stark typisierten Zugriff auf relationale Datenbanken mithilfe von Objektzuordnung und F#-LINQ-Abfragen für diese Datenquellen.
- FSharp.Data.SqlClient verfügt über eine Reihe von Typanbietern für die kompilierte Einbettung von T-SQL in F#.
- Der Azure Storage-Typanbieter stellt Typen für Azure-Blobs, -Tabellen und -Warteschlangen bereit, sodass Sie auf diese Ressourcen zugreifen können, ohne ressourcennamen im gesamten Programm als Zeichenfolgen angeben zu müssen.
- FSharp.Data.GraphQL enthält den GraphQLProvider, der Typen basierend auf einem von der URL angegebenen GraphQL-Server bereitstellt.
Bei Bedarf können Sie eigene benutzerdefinierte Typanbieter erstellen oder Typanbieter referenzieren, die von anderen erstellt wurden. Angenommen, Ihre Organisation verfügt über einen Datendienst, der eine große und wachsende Anzahl von benannten Datensätzen bereitstellt, die jeweils ein eigenes stabiles Datenschema besitzen. Sie können einen Typanbieter erstellen, der die Schemas liest und die neuesten verfügbaren Datasets dem Programmierer auf stark typierte Weise präsentiert.