void Initialize()
 {
     @interface.ReadOriginalValue = () => {
         InitializeRawRow();
         return(readerModule.ResolveTypeDefOrRef(rawRow.Interface));
     };
 }
 void Initialize()
 {
     owner.ReadOriginalValue = () => {
         return(readerModule.GetOwner(this));
     };
     number.ReadOriginalValue = () => {
         InitializeRawRow();
         return(rawRow.Number);
     };
     flags.ReadOriginalValue = () => {
         InitializeRawRow();
         return((GenericParamAttributes)rawRow.Flags);
     };
     name.ReadOriginalValue = () => {
         InitializeRawRow();
         return(readerModule.StringsStream.ReadNoNull(rawRow.Name));
     };
     kind.ReadOriginalValue = () => {
         if (readerModule.TablesStream.GenericParamTable.TableInfo.Columns.Count != 5)
         {
             return(null);
         }
         InitializeRawRow();
         return(readerModule.ResolveTypeDefOrRef(rawRow.Kind));
     };
 }
示例#3
0
        void Initialize()
        {
            @interface.ReadOriginalValue = () => {
                InitializeRawRow_NoLock();
                return(readerModule.ResolveTypeDefOrRef(rawRow.Interface));
            };
#if THREAD_SAFE
            @interface.Lock = theLock;
#endif
        }
示例#4
0
 void Initialize()
 {
     owner.ReadOriginalValue = () => {
         return(readerModule.GetOwner(this));
     };
     constraint.ReadOriginalValue = () => {
         InitializeRawRow();
         return(readerModule.ResolveTypeDefOrRef(rawRow.Constraint));
     };
 }
        /// <summary>
        /// Reads a <c>TypeDefOrRef</c>
        /// </summary>
        /// <returns>A <see cref="ITypeDefOrRef"/> instance</returns>
        ITypeDefOrRef ReadTypeDefOrRef()
        {
            uint codedToken;

            if (!reader.ReadCompressedUInt32(out codedToken))
            {
                return(null);
            }
            //TODO: Perhaps we should read this lazily. If so, update ValueTypeSig, etc to take a coded token
            return(readerModule.ResolveTypeDefOrRef(codedToken));
        }
示例#6
0
        void Initialize()
        {
            owner.ReadOriginalValue = () => {
                return(readerModule.GetOwner(this));
            };
            constraint.ReadOriginalValue = () => {
                InitializeRawRow_NoLock();
                return(readerModule.ResolveTypeDefOrRef(rawRow.Constraint));
            };
#if THREAD_SAFE
            owner.Lock      = theLock;
            constraint.Lock = theLock;
#endif
        }
示例#7
0
 void Initialize()
 {
     flags.ReadOriginalValue = () => {
         InitializeRawRow();
         return((EventAttributes)rawRow.EventFlags);
     };
     name.ReadOriginalValue = () => {
         InitializeRawRow();
         return(readerModule.StringsStream.ReadNoNull(rawRow.Name));
     };
     type.ReadOriginalValue = () => {
         InitializeRawRow();
         return(readerModule.ResolveTypeDefOrRef(rawRow.EventType));
     };
     declaringType.ReadOriginalValue = () => {
         return(readerModule.GetOwnerType(this));
     };
 }
示例#8
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="readerModule">The module which contains this <c>InterfaceImpl</c> row</param>
        /// <param name="rid">Row ID</param>
        /// <param name="gpContext">Generic parameter context</param>
        /// <exception cref="ArgumentNullException">If <paramref name="readerModule"/> is <c>null</c></exception>
        /// <exception cref="ArgumentException">If <paramref name="rid"/> is invalid</exception>
        public InterfaceImplMD(ModuleDefMD readerModule, uint rid, GenericParamContext gpContext)
        {
#if DEBUG
            if (readerModule == null)
            {
                throw new ArgumentNullException("readerModule");
            }
            if (readerModule.TablesStream.InterfaceImplTable.IsInvalidRID(rid))
            {
                throw new BadImageFormatException(string.Format("InterfaceImpl rid {0} does not exist", rid));
            }
#endif
            this.origRid      = rid;
            this.rid          = rid;
            this.readerModule = readerModule;
            uint @interface = readerModule.TablesStream.ReadInterfaceImplRow2(origRid);
            this.@interface = readerModule.ResolveTypeDefOrRef(@interface, gpContext);
        }
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="readerModule">The module which contains this <c>GenericParamConstraint</c> row</param>
        /// <param name="rid">Row ID</param>
        /// <param name="gpContext">Generic parameter context</param>
        /// <exception cref="ArgumentNullException">If <paramref name="readerModule"/> is <c>null</c></exception>
        /// <exception cref="ArgumentException">If <paramref name="rid"/> is invalid</exception>
        public GenericParamConstraintMD(ModuleDefMD readerModule, uint rid, GenericParamContext gpContext)
        {
#if DEBUG
            if (readerModule == null)
            {
                throw new ArgumentNullException("readerModule");
            }
            if (readerModule.TablesStream.GenericParamConstraintTable.IsInvalidRID(rid))
            {
                throw new BadImageFormatException(string.Format("GenericParamConstraint rid {0} does not exist", rid));
            }
#endif
            this.origRid      = rid;
            this.rid          = rid;
            this.readerModule = readerModule;
            uint constraint = readerModule.TablesStream.ReadGenericParamConstraintRow2(origRid);
            this.constraint = readerModule.ResolveTypeDefOrRef(constraint, gpContext);
            this.owner      = readerModule.GetOwner(this);
        }
示例#10
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="readerModule">The module which contains this <c>Event</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 EventDefMD(ModuleDefMD readerModule, uint rid)
        {
#if DEBUG
            if (readerModule == null)
            {
                throw new ArgumentNullException("readerModule");
            }
            if (readerModule.TablesStream.EventTable.IsInvalidRID(rid))
            {
                throw new BadImageFormatException(string.Format("Event rid {0} does not exist", rid));
            }
#endif
            this.origRid      = rid;
            this.rid          = rid;
            this.readerModule = readerModule;
            uint name;
            uint eventType = readerModule.TablesStream.ReadEventRow(origRid, out this.attributes, out name);
            this.name           = readerModule.StringsStream.ReadNoNull(name);
            this.declaringType2 = readerModule.GetOwnerType(this);
            this.eventType      = readerModule.ResolveTypeDefOrRef(eventType, new GenericParamContext(declaringType2));
        }
示例#11
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="readerModule">The module which contains this <c>GenericParam</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 GenericParamMD(ModuleDefMD readerModule, uint rid)
        {
#if DEBUG
            if (readerModule == null)
            {
                throw new ArgumentNullException("readerModule");
            }
            if (readerModule.TablesStream.GenericParamTable.IsInvalidRID(rid))
            {
                throw new BadImageFormatException(string.Format("GenericParam rid {0} does not exist", rid));
            }
#endif
            this.origRid      = rid;
            this.rid          = rid;
            this.readerModule = readerModule;
            uint name;
            uint kind = readerModule.TablesStream.ReadGenericParamRow(origRid, out this.number, out this.attributes, out name);
            this.name  = readerModule.StringsStream.ReadNoNull(name);
            this.owner = readerModule.GetOwner(this);
            if (kind != 0)
            {
                this.kind = readerModule.ResolveTypeDefOrRef(kind, GetGenericParamContext(owner));
            }
        }