Proveedores de tiposType Providers

Un proveedor de tipos de F# es un componente que proporciona tipos, propiedades y métodos para usar en el programa.An F# type provider is a component that provides types, properties, and methods for use in your program. Los proveedores de tipos generan lo que se conoce como proporciona tipos, que son generados por el F# compilador y se basan en un origen de datos externo.Type Providers generate what are known as Provided Types, which are generated by the F# compiler and are based on an external data source.

Por ejemplo, un F# proveedor de tipos para SQL puede generar tipos que representan las tablas y columnas en una base de datos relacional.For example, an F# Type Provider for SQL can generate types representing tables and columns in a relational database. De hecho, esto es lo que el SQLProvider hace el proveedor de tipo.In fact, this is what the SQLProvider Type Provider does.

Proporciona que tipos dependen de los parámetros de entrada a un proveedor de tipos.Provided Types depend on input parameters to a Type Provider. Dicha entrada puede ser un origen de datos de ejemplo (por ejemplo, un archivo de esquema JSON), una dirección URL que apunta directamente a un servicio externo o una cadena de conexión a un origen de datos.Such input can be a sample data source (such as a JSON schema file), a URL pointing directly to an external service, or a connection string to a data source. Un proveedor de tipos también puede asegurarse de que solo se expanden los grupos de tipos a petición; es decir, que se expandan si realmente se hace referencia a los tipos en los programas.A Type Provider can also ensure that groups of types are only expanded on demand; that is, they are expanded if the types are actually referenced by your program. Esto permite la integración directa a petición de espacios de información a gran escala, tales como mercados de datos en línea de forma fuertemente tipada.This allows for the direct, on-demand integration of large-scale information spaces such as online data markets in a strongly typed way.

Proveedores de tipos generativa y borradosGenerative and Erased Type Providers

Los proveedores de tipos se dividen en dos formas: Generativa y borrados.Type Providers come in two forms: Generative and Erased.

Los proveedores de tipos generativa generar tipos que se pueden escribir como tipos de .NET en el ensamblado en la que se generan.Generative Type Providers produce types that can be written as .NET types into the assembly in which they are produced. Esto les permite consumir desde el código de otros ensamblados.This allows them to be consumed from code in other assemblies. Esto significa que la representación del origen de datos con tipo generalmente debe ser uno que sea posible para representar con tipos de. NET.This means that the typed representation of the data source must generally be one that is feasible to represent with .NET types.

Borrado de los proveedores de tipos producen tipos que sólo pueden utilizarse en el ensamblado o proyecto que se generan a partir.Erasing Type Providers produce types that can only be consumed in the assembly or project they are generated from. Los tipos son efímeros; es decir, que no se escriben en un ensamblado y no pueden usarse por código de otros ensamblados.The types are ephemeral; that is, they are not written into an assembly and cannot be consumed by code in other assemblies. Pueden contener retrasa miembros, lo que le permite utilizar proporcionado tipos de un espacio de información potencialmente infinito.They can contain delayed members, allowing you to use provided types from a potentially infinite information space. Son útiles para el uso de un pequeño subconjunto de un origen de datos de gran tamaño e interconectadas.They are useful for using a small subset of a large and interconnected data source.

Los proveedores de tipos de uso frecuenteCommonly used Type Providers

Las siguientes bibliotecas usados contienen los proveedores de tipos para usos diferentes:The following widely-used libraries contain Type Providers for different uses:

  • FSharp.Data incluye proveedores de tipos de recursos y formatos de documento HTML, XML, CSV y JSON.FSharp.Data includes Type Providers for JSON, XML, CSV, and HTML document formats and resources.
  • SQLProvider proporciona acceso fuertemente tipado para las bases de datos de relación mediante la asignación de objeto y F# consultas LINQ en estos orígenes de datos.SQLProvider provides strongly-typed access to relation databases through object mapping and F# LINQ queries against these data sources.
  • FSharp.Data.SqlClient ha comprobado un conjunto de proveedores de tipo de tiempo de compilación de inserción de T-SQL en F#.FSharp.Data.SqlClient has a set of type providers for compile-time checked embedding of T-SQL in F#.
  • El proveedor de tipo de almacenamiento Azure proporciona tipos para Azure Blobs, tablas y colas, lo que permite tener acceso a estos recursos sin necesidad de especificar los nombres de recursos como cadenas a lo largo de su programa.Azure Storage Type provider provides types for Azure Blobs, Tables, and Queues, allowing you to access these resources without needing to specify resource names as strings throughout your program.
  • FSharp.Data.GraphQL contiene el GraphQLProvider, que proporciona tipos basados en un servidor GraphQL especificado por la dirección URL.FSharp.Data.GraphQL contains the GraphQLProvider, which provides types based on a GraphQL server specified by URL.

En caso necesario, puede crear sus propios proveedores de tipo personalizado, o hacer referencia a los proveedores de tipos que se han creado otros usuarios.Where necessary, you can create your own custom type providers, or reference type providers that have been created by others. Por ejemplo, suponga que su organización tiene un servicio de datos que proporciona un número elevado y creciente de conjuntos de datos con nombre, cada uno con su propio esquema de datos estable.For example, assume your organization has a data service providing a large and growing number of named data sets, each with its own stable data schema. Se puede elegir crear un proveedor de tipo que lea los esquemas y presente los últimos conjuntos de datos disponibles al programador de forma fuertemente tipada.You may choose to create a type provider that reads the schemas and presents the latest available data sets to the programmer in a strongly typed way.

Vea tambiénSee also