/// <inheritdoc /> public IMetadata CreateMetadata() { // Create streams. var tablesStream = TablesStream.CreateStream(); var stringsStream = StringsStream.CreateStream(); var userStringsStream = UserStringsStream.CreateStream(); var guidStream = GuidStream.CreateStream(); var blobStream = BlobStream.CreateStream(); // Update index sizes. tablesStream.StringIndexSize = stringsStream.IndexSize; tablesStream.GuidIndexSize = guidStream.IndexSize; tablesStream.BlobIndexSize = blobStream.IndexSize; // Create metadata directory. return(new PE.DotNet.Metadata.Metadata { VersionString = _versionString, Streams = { tablesStream, stringsStream, userStringsStream, guidStream, blobStream } }); }
/// <summary> /// Imports the contents of a user strings stream and indexes all present strings. /// </summary> /// <param name="stream">The stream to import.</param> public void ImportStream(UserStringsStream stream) { MetadataStreamBufferHelper.CloneBlobHeap(stream, _writer, (index, newIndex) => _strings[stream.GetStringByIndex(index)] = newIndex); }