Mark exception as [Serializable], split into separate files.
Don't dispose stream twice.