public bool Read(BinaryArchiveReader archive) { var rc = false; if (null != archive) { // Read and verify chunk version int major, minor; archive.Read3dmChunkVersion(out major, out minor); if (1 == major && 0 == minor) { try { // Read this object var bytes = archive.ReadByteArray(); var stream = new MemoryStream(bytes); var formatter = new BinaryFormatter(); var data = formatter.Deserialize(stream) as SampleCsCustomClass; Create(data); // Verify reading rc = archive.ReadErrorOccured; } catch { // TODO } } } return(rc); }
protected override void ReadDocument(RhinoDoc doc, BinaryArchiveReader archive, FileReadOptions options) { int major, minor; archive.Read3dmChunkVersion(out major, out minor); byte[] data = archive.ReadByteArray(); if (!archive.ReadErrorOccured && data != null) { Host.EnsureInitialisation(true); ModelDocument mDoc = Document.FromBinary <ModelDocument>(data); Core.Instance.ActiveDocument = mDoc; } base.ReadDocument(doc, archive, options); }