Skip to content

Instantly share code, notes, and snippets.

@JonCanning
Created February 2, 2015 16:09
Show Gist options
  • Select an option

  • Save JonCanning/a7815917af9ab814da24 to your computer and use it in GitHub Desktop.

Select an option

Save JonCanning/a7815917af9ab814da24 to your computer and use it in GitHub Desktop.
let asQueryString o =
o.GetType().GetProperties()
|> Array.map (fun p -> (p.Name, p.GetValue(o) |> string))
|> Array.map (fun (name, value) ->
let m = Regex.Match(value, "Some\((?<value>.*?)\)")
(name, if m.Groups.Count = 2 then m.Groups.["value"].Value else value))
|> Array.map (fun (name, value) -> sprintf "%s=%s" name value)
|> String.concat "&"
|> sprintf "?%s"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment