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);
                }
            }
        }
Esempio n. 2
0
        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);
                }
            }
        }
Esempio n. 3
0
 internal void AddChild(ExtensionRecord item)
 {
     _children = _children ?? new List <ExtensionRecord>();
     _children.Add(item);
 }