Sdílet prostřednictvím


Zprostředkovatelé typů

Zprostředkovatel typu F# je komponenta, která poskytuje typy, vlastnosti a metody pro použití v programu. Zprostředkovatelé typů generují tzv. poskytované typy, které jsou vytvořeny kompilátorem jazyka F# na základě externího zdroje dat.

Zprostředkovatel typů jazyka F# pro SQL může například generovat typy představující tabulky a sloupce v relační databázi. Ve skutečnosti to dělá poskytovatel typu SQLProvider .

Dodané typy závisí na vstupních parametrech pro poskytovatele typu. Takový vstup může být ukázkovým zdrojem dat (například soubor schématu JSON), adresou URL odkazující přímo na externí službu nebo připojovacím řetězcem ke zdroji dat. Poskytovatel typů také může zajistit, aby skupiny typů byly rozbaleny pouze na požádání, tedy jsou rozbaleny, pokud na tyto typy ve skutečnosti odkazuje váš program. To umožňuje přímou integraci na vyžádání velkých informačních prostor, jako jsou online trhy s daty, s pevně definovanými typy.

Zprostředkovatelé generování a vymazání typů

Zprostředkovatelé typů mají dvě formy: Generování a vymazání.

Zprostředkovatelé typů generují typy, které lze zapsat jako typy .NET do sestavení, ve kterém jsou vytvořeny. To jim umožňuje využívat kód v jiných sestaveních. To znamená, že typová reprezentace zdroje dat musí být obecně taková, která je možná reprezentovat s typy .NET.

Poskytovatelé typů pro mazání vytvářejí typy, které lze použít pouze v sestavení nebo projektu, z něhož byly vytvořeny. Typy jsou dočasné; to znamená, že nejsou zapsány do sestavení a nelze je využívat kódem v jiných sestaveních. Můžou obsahovat zpožděné členy, což umožňuje používat poskytnuté typy z potenciálně nekonečného informačního prostoru. Jsou užitečné pro použití malé podmnožiny velkého a vzájemně propojeného zdroje dat.

Běžně používaní zprostředkovatelé typů

Následující široce používané knihovny obsahují poskytovatele typů pro různá použití:

  • FSharp.Data obsahuje zprostředkovatele typů pro formáty a prostředky dokumentů JSON, XML, CSV a HTML.
  • SQLProvider poskytuje silné typy přístupu k relačním databázím prostřednictvím mapování objektů a dotazů LINQ jazyka F# na tyto zdroje dat.
  • FSharp.Data.SqlClient má sadu poskytovatelů typů pro vkládání T-SQL do jazyka F# s kontrolou během kompilace.
  • Poskytovatel typů úložiště Azure poskytuje typy pro objekty blob, tabulky a fronty Azure, které umožňují přístup k těmto prostředkům bez potřeby uvádět názvy prostředků jako řetězce ve vašem programu.
  • FSharp.Data.GraphQL obsahuje GraphQLProvider, který poskytuje typy založené na serveru GraphQL určeném adresou URL.

V případě potřeby můžete vytvořit vlastní zprostředkovatele typů nebo odkazovat na zprostředkovatele typů, které vytvořili jiní uživatelé. Předpokládejme například, že vaše organizace má datovou službu poskytující velký a rostoucí počet pojmenovaných datových sad, z nichž každá má vlastní stabilní schéma dat. Můžete se rozhodnout vytvořit poskytovatele typů, který čte schémata a prezentuje programátorovi nejnovější dostupné datové sady s přísnou kontrolou typů.

Viz také