protected Document(SerializationInfo info, StreamingContext context) { Map = (Map)(info.GetValue("map", typeof(Map))); settings = (DocumentSettings)(info.GetValue("settings", typeof(DocumentSettings))); sessions = (SessionCollection)(info.GetValue("sessions", typeof(SessionCollection))); projectionOrigin = (LongLat)(info.GetValue("projectionOrigin", typeof(LongLat))); // todo: how handle non-existing properties field? try { properties = (DocumentProperties)(info.GetValue("properties", typeof(DocumentProperties))); } catch (Exception) { } }