/// <summary> /// Constructor /// </summary> /// <param name="readerModule">The module which contains this <c>ManifestResource</c> row</param> /// <param name="rid">Row ID</param> /// <exception cref="ArgumentNullException">If <paramref name="readerModule"/> is <c>null</c></exception> /// <exception cref="ArgumentException">If <paramref name="rid"/> is invalid</exception> public ManifestResourceMD(ModuleDefMD readerModule, uint rid) { #if DEBUG if (readerModule == null) throw new ArgumentNullException("readerModule"); if (readerModule.TablesStream.ManifestResourceTable.IsInvalidRID(rid)) throw new BadImageFormatException(string.Format("ManifestResource rid {0} does not exist", rid)); #endif this.origRid = rid; this.rid = rid; this.readerModule = readerModule; uint name; uint implementation = readerModule.TablesStream.ReadManifestResourceRow(origRid, out this.offset, out this.attributes, out name); this.name = readerModule.StringsStream.ReadNoNull(name); this.implementation = readerModule.ResolveImplementation(implementation); }
void Initialize() { offset.ReadOriginalValue = () => { InitializeRawRow(); return(rawRow.Offset); }; flags.ReadOriginalValue = () => { InitializeRawRow(); return((ManifestResourceAttributes)rawRow.Flags); }; name.ReadOriginalValue = () => { InitializeRawRow(); return(readerModule.StringsStream.ReadNoNull(rawRow.Name)); }; implementation.ReadOriginalValue = () => { InitializeRawRow(); return(readerModule.ResolveImplementation(rawRow.Implementation)); }; }
void Initialize() { flags.ReadOriginalValue = () => { InitializeRawRow(); return((TypeAttributes)rawRow.Flags); }; typeDefId.ReadOriginalValue = () => { InitializeRawRow(); return(rawRow.TypeDefId); }; typeName.ReadOriginalValue = () => { InitializeRawRow(); return(readerModule.StringsStream.ReadNoNull(rawRow.TypeName)); }; typeNamespace.ReadOriginalValue = () => { InitializeRawRow(); return(readerModule.StringsStream.ReadNoNull(rawRow.TypeNamespace)); }; implementation.ReadOriginalValue = () => { InitializeRawRow(); return(readerModule.ResolveImplementation(rawRow.Implementation)); }; }
/// <inheritdoc/> protected override IImplementation GetImplementation_NoLock() { return(readerModule.ResolveImplementation(implementationRid)); }