I am attempting to specify a custom pickler with Thespian, using the following setup code:
let registry = CustomPicklerRegistry()
registry.RegisterFactory <| fun (resolver : IPicklerResolver) ->
let writer (w: WriteState) (x: MyType) =
// code...
let reader (r: ReadState) : MyType =
// code...
Pickler.FromPrimitives(reader, writer)
registry.DeclareSerializable<MyType>()
let cache = PicklerCache.FromCustomPicklerRegistry registry
Nessos.Thespian.Serialization.defaultSerializer <- new FsPicklerMessageSerializer(FsPickler.CreateBinarySerializer(picklerResolver = cache))
However, when I attempt to run a cloud calculation, I get MBrace.FsPickler.NonSerializableTypeException for MyType. It seems like Thespian is always using the default instance of MBrace.FsPickler.PicklerCache instead of the cache created above...
I am attempting to specify a custom pickler with Thespian, using the following setup code:
However, when I attempt to run a cloud calculation, I get
MBrace.FsPickler.NonSerializableTypeException
forMyType
. It seems like Thespian is always using the default instance ofMBrace.FsPickler.PicklerCache
instead of the cache created above...