// dnlib: See LICENSE.txt for more info using dnlib.IO; namespace dnlib.DotNet.MD { /// /// Represents the #Strings stream /// public sealed class StringsStream : HeapStream { /// public StringsStream() { } /// public StringsStream(DataReaderFactory mdReaderFactory, uint metadataBaseOffset, StreamHeader streamHeader) : base(mdReaderFactory, metadataBaseOffset, streamHeader) { } /// /// Reads a /// /// Offset of string /// A instance or null if invalid offset public UTF8String Read(uint offset) { if (offset >= StreamLength) return null; byte[] data; var reader = dataReader; reader.Position = offset; data = reader.TryReadBytesUntil(0); if (data is null) return null; return new UTF8String(data); } /// /// Reads a . The empty string is returned if /// is invalid. /// /// Offset of string /// A instance public UTF8String ReadNoNull(uint offset) => Read(offset) ?? UTF8String.Empty; } }