internal void Read(Stream reader, string parentPath) { Head = new ExtensionHeadRecord(); Head.Read(reader); Head.ParentPath = parentPath; // assign the parent path first!!!! var hasData = reader.ReadBoolean(); if (hasData) { Data = new ExtensionDataRecord(); Data.Read(reader); } var childCount = reader.ReadInt32(); if (childCount > 0) { _children = new List <ExtensionRecord>(childCount); for (int i = 0; i < childCount; i++) { var child = new ExtensionRecord(); child.Read(reader, Head.Path); _children.Add(child); } } }
public void Read(Stream reader) { ParentPath = reader.ReadString(); RootIsExtensionPoint = reader.ReadBoolean(); var childCount = reader.ReadInt32(); if (childCount > 0) { _children = new List <ExtensionRecord>(childCount); for (int i = 0; i < childCount; i++) { var child = new ExtensionRecord(); child.Read(reader, ParentPath); _children.Add(child); } } }