I was having a SessionStateException after my application was suspended and I struggled finding the reason. I had to debug my application with Prism sources and then I found that I was missing to register known types for serialization in the method OnRegisterKnownTypesForSerialization.
What about using Json.Net for serialization instead of DataContractSerializer?
In this way there would be no need to register types (also I think we'll have better performance).
What do you think?