MessagePack.FSharpExtensions is a MessagePack-CSharp extension library for F#.
open MessagePack
open MessagePack.Resolvers
open MessagePack.FSharp
CompositeResolver.RegisterAndSetAsDefault(
FSharpResolver.Instance,
StandardResolver.Instance
)
[<MessagePackObject>]
type UnionSample =
| Foo of XYZ : int
| Bar of OPQ : string list
let data = Foo 999
let bin = MessagePackSerializer.Serialize(data)
match MessagePackSerializer.Deserialize<UnionSample>(bin) with
| Foo x ->
printfn "%d" x
| Bar xs ->
printfn "%A" xs