Exemplo n.º 1
0
        public virtual ResXMLTree_startelement ReadResXMLTree_startelement(ResXMLTree_node node,
                                                                           ResXMLTree_attrExt attrExt)
        {
            var element = new ResXMLTree_startelement
            {
                Node       = node,
                AttrExt    = attrExt,
                Attributes = new List <ResXMLTree_attribute>()
            };

            var bytesLeft = node.Header.Size - 0x24u;

            for (var i = 0; i < attrExt.AttributeCount; i++)
            {
                element.Attributes.Add(ReadResXMLTree_attribute());
                bytesLeft -= 0x14u;
            }

            if (bytesLeft < 0)
            {
                throw new InvalidDataException("The length of the content exceeds the ResStringPool block boundary.");
            }
            if (bytesLeft > 0)
            {
                Debug.WriteLine("Warning: Garbage at the end of the StringPool block. Padding?");
                ReadBytes((int)bytesLeft);
            }

            return(element);
        }
Exemplo n.º 2
0
 public virtual void Write(ResXMLTree_attrExt data)
 {
     Write(data.Namespace);
     Write(data.Name);
     _writer.Write(data.AttributeStart);
     _writer.Write(data.AttributeSize);
     _writer.Write(data.AttributeCount);
     _writer.Write(data.IdIndex);
     _writer.Write(data.ClassIndex);
     _writer.Write(data.StyleIndex);
 }