Пример #1
0
        public override void SetValue(USToken tkn, string val)
        {
            MetadataStream strs = this.Stream;

            strs.Position = tkn.Token.Index;
            MetadataReader rdr = new MetadataReader(strs);
            uint           len = rdr.ReadCompressedUInt();

            MetadataWriter wtr = new MetadataWriter(strs);

            byte[] b = Encoding.Unicode.GetBytes(val);
            if (len == b.Length)
            {
                strs.Position = tkn.Token.Index;
                wtr.WriteCompressedUInt(len);
                wtr.Write(b);
            }
            else
            {
                ResizeChild(tkn, (uint)b.Length);
                strs.Position = tkn.Token.Index;
                wtr.WriteCompressedInt(b.Length);
                wtr.Write(b);
            }
        }
Пример #2
0
        public override void SetValue(BlobToken tkn, byte[] val)
        {
            MetadataStream strs = this.Stream;

            strs.Position = tkn.Token.Index;
            MetadataReader rdr = new MetadataReader(strs);
            uint           len = rdr.ReadCompressedUInt();

            MetadataWriter wtr = new MetadataWriter(strs);

            if (len == val.Length)
            {
                strs.Position = tkn.Token.Index;
                wtr.WriteCompressedUInt(len);
                wtr.Write(val);
            }
            else
            {
                ResizeChild(tkn, (uint)val.Length);
                strs.Position = tkn.Token.Index;
                wtr.WriteCompressedInt(val.Length);
                wtr.Write(val);
            }
        }