/// <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);
        }
示例#2
0
 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));
     };
 }
示例#3
0
 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));
     };
 }
示例#4
0
 /// <inheritdoc/>
 protected override IImplementation GetImplementation_NoLock()
 {
     return(readerModule.ResolveImplementation(implementationRid));
 }