Type Providers

Using the CSV Type Provider

Given the following CSV file:

Id,Name
1,"Joel"
2,"Adam"
3,"Ryan"
4,"Matt"

You can read the data with the following script:

#r "FSharp.Data.dll"
open FSharp.Data

type PeopleDB = CsvProvider<"people.csv">

let people = PeopleDB.Load("people.csv") // this can be a URL

let joel = people.Rows |> Seq.head

printfn "Name: %s, Id: %i" joel.Name joel.Id

Using the WMI Type Provider

The WMI type provider allows you to query WMI services with strong typing.

To output the results of a WMI query as JSON,

open FSharp.Management
open Newtonsoft.Json

// `Local` is based off of the WMI available at localhost. 
type Local = WmiProvider<"localhost">

let data = 
    [for d in Local.GetDataContext().Win32_DiskDrive -> d.Name, d.Size]

printfn "%A" (JsonConvert.SerializeObject data)