Does the deserialization support ISerializable?
I experienced that it does not help, when I implement ISerializable for my custom activity classes. ISerializable.GetObjectData is not called on deserialization.
Does the deserialization of the workflow foundation not support ISerializable?
Right - implementing ISerializable on any type that derives from Activity will be a total no-op.
The normal serialization rules apply of course to any .net types that you have as fields in your Activity derived classes (or used as DependencyProperties ). If you write those types - you can either mark them with Serializable or implement ISerializable. If you didn't write the type in question you can build a SerializationSurrogateSelector and SerializationSurrogate for that type.