mbraceproject / FsPickler

A fast multi-format message serializer for .NET
http://mbraceproject.github.io/FsPickler/
MIT License
325 stars 52 forks source link

Can't Pickle a list of DayOfWeek #110

Open davidtme opened 5 years ago

davidtme commented 5 years ago

A List of DayOfWeek throws an exception

#r "FsPickler.dll"
open MBrace.FsPickler

let binarySerializer = FsPickler.CreateBinarySerializer()
let pickle = binarySerializer.Pickle [System.DayOfWeek.Monday]

Error:

MBrace.FsPickler.FsPicklerException
  HResult=0x80131500
  Message=Error serializing object of type 'Microsoft.FSharp.Collections.FSharpList`1[System.DayOfWeek]'.
  Source=FsPickler
  StackTrace:
   at MBrace.FsPickler.RootSerialization.writeRootObject[T](IPicklerResolver resolver, ReflectionCache reflectionCache, IPickleFormatWriter formatter, FSharpOption`1 streamingContext, FSharpOption`1 sifter, Boolean isHash, Boolean disableSubtypes, Pickler`1 pickler, T value)
   at MBrace.FsPickler.FsPicklerSerializer.Serialize[T](Stream stream, T value, FSharpOption`1 pickler, FSharpOption`1 streamingContext, FSharpOption`1 encoding, FSharpOption`1 leaveOpen)
   at <StartupCode$FsPickler>.$Serializer.Pickle@155.Invoke(T v)
   at MBrace.FsPickler.FsPicklerSerializer.Pickle[T](T value, FSharpOption`1 pickler, FSharpOption`1 streamingContext, FSharpOption`1 encoding)

Inner Exception 1:
ArgumentException: Object must be an array of primitives.
Parameter name: src

An array of DayOfWeek works fine

ingted commented 2 years ago

The new version should be fine.

image