다음을 통해 공유


형식 공급자

F# 형식 공급자는 프로그램에서 사용할 형식, 속성 및 메서드를 제공하는 구성 요소입니다. 형식 공급자는 F# 컴파일러에서 생성되고 외부 데이터 원본을 기반으로 하는 제공된 형식이라고 하는 항목을 생성합니다.

예를 들어 SQL용 F# 형식 공급자는 관계형 데이터베이스의 테이블과 열을 나타내는 형식을 생성할 수 있습니다. 실제로 SQLProvider 형식 공급자가 수행하는 작업입니다.

제공된 형식은 형식 공급자에 대한 입력 매개 변수에 따라 달라집니다. 이러한 입력은 샘플 데이터 원본(예: JSON 스키마 파일), 외부 서비스를 직접 가리키는 URL 또는 데이터 원본에 대한 연결 문자열일 수 있습니다. 형식 공급자는 형식 그룹이 요청 시만 확장되도록 할 수도 있습니다. 즉, 형식이 프로그램에서 실제로 참조되는 경우 확장됩니다. 이를 통해 강력한 형식의 방식으로 온라인 데이터 시장과 같은 대규모 정보 공간을 직접 주문형으로 통합할 수 있습니다.

생성형 및 소거형 타입 프로바이더

형식 공급자는 생성 및 지우기라는 두 가지 형식으로 제공됩니다.

생성 형식 공급자는 생성되는 어셈블리에 .NET 형식으로 작성할 수 있는 형식을 생성합니다. 이렇게 하면 다른 어셈블리의 코드에서 활용될 수 있습니다. 즉, 데이터 원본의 형식화된 표현은 일반적으로 .NET 형식으로 나타낼 수 있는 표현이어야 합니다.

형식 공급자를 지우면 생성된 어셈블리 또는 프로젝트에서만 사용할 수 있는 형식이 생성됩니다. 형식은 임시 형식입니다. 즉, 어셈블리에 기록되지 않으며 다른 어셈블리의 코드에서 사용할 수 없습니다. 지연된 멤버를 포함할 수 있으므로 잠재적으로 무한 정보 공간에서 제공된 형식을 사용할 수 있습니다. 큰 데이터 원본과 상호 연결된 데이터 원본의 작은 하위 집합을 사용하는 데 유용합니다.

일반적으로 사용되는 형식 공급자

널리 사용되는 다음 라이브러리에는 다양한 용도로 사용되는 형식 공급자가 포함되어 있습니다.

  • FSharp.Data에는 JSON, XML, CSV 및 HTML 문서 형식 및 리소스에 대한 형식 공급자가 포함됩니다.
  • SQLProvider 는 이러한 데이터 원본에 대한 개체 매핑 및 F# LINQ 쿼리를 통해 관계 데이터베이스에 대한 강력한 형식의 액세스를 제공합니다.
  • FSharp.Data.SqlClient 에는 F#에서 T-SQL의 컴파일 시간 확인 포함을 위한 형식 공급자 집합이 있습니다.
  • Azure Storage 형식 공급자 는 Azure Blob, 테이블 및 큐에 대한 형식을 제공하므로 프로그램 전체에서 리소스 이름을 문자열로 지정할 필요 없이 이러한 리소스에 액세스할 수 있습니다.
  • FSharp.Data.GraphQL 에는 URL로 지정된 GraphQL 서버를 기반으로 형식을 제공하는 GraphQLProvider가 포함되어 있습니다.

필요한 경우 사용자 고유의 사용자 지정 형식 공급자 또는 다른 사용자가 만든 참조 형식 공급자를 만들 수 있습니다. 예를 들어 조직에는 각각 안정적인 데이터 스키마가 있는 명명된 데이터 집합의 수가 많고 증가하는 데이터 서비스가 있다고 가정합니다. 스키마를 읽고 사용 가능한 최신 데이터 세트를 프로그래머에 강력한 형식으로 제공하는 형식 공급자를 만들도록 선택할 수 있습니다.

참고하십시오