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); } }
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); } }