Hi Leo ,
If you have v.4.4.0.46, the only changes that your custom Symbol type requires is a serialization constructor and an override of the Symbol.GetObjectData(SerializationInfo, StreamingContext) method that implements ISerializable.GetObjectData() for the base Symbol type.
This type of exception occurs because the serialization constructor that your class currently implements is incorrect as for proper serialization the Symbol members have to load from the SerializationInfo parameter; similarly in the GetObjectData() method, the Symbol class has to write it's member contents to the SerializationInfo param.
I have attached a sample that shows the symbol class and a basic Save/Load implementation. The Diagram.SaveSoap/LoadSoap calls that write/read the diagram are invoked in the mainform.cs class.
http://websamples.syncfusion.com/samples/Diagram.Windows/F70588/main.htmI hope this helps. Unless please provide us a minimal sample or the diagram file that shows this issue. Please let me know if you have questions.
Regards,
Nagaraj