Esempio n. 1
0
 void Initialize()
 {
     @class.ReadOriginalValue = () => {
         InitializeRawRow();
         return(readerModule.ResolveMemberRefParent(rawRow.Class));
     };
     name.ReadOriginalValue = () => {
         InitializeRawRow();
         return(readerModule.StringsStream.ReadNoNull(rawRow.Name));
     };
     signature.ReadOriginalValue = () => {
         InitializeRawRow();
         return(readerModule.ReadSignature(rawRow.Signature));
     };
 }
Esempio n. 2
0
        void Initialize()
        {
            @class.ReadOriginalValue = () => {
                InitializeRawRow_NoLock();
                return(readerModule.ResolveMemberRefParent(rawRow.Class));
            };
            name.ReadOriginalValue = () => {
                InitializeRawRow_NoLock();
                return(readerModule.StringsStream.ReadNoNull(rawRow.Name));
            };
            signature.ReadOriginalValue = () => {
                InitializeRawRow_NoLock();
                return(readerModule.ReadSignature(rawRow.Signature));
            };
#if THREAD_SAFE
            @class.Lock    = theLock;
            name.Lock      = theLock;
            signature.Lock = theLock;
#endif
        }
Esempio n. 3
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="readerModule">The module which contains this <c>MemberRef</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 MemberRefMD(ModuleDefMD readerModule, uint rid, GenericParamContext gpContext)
        {
#if DEBUG
            if (readerModule == null)
            {
                throw new ArgumentNullException("readerModule");
            }
            if (readerModule.TablesStream.MemberRefTable.IsInvalidRID(rid))
            {
                throw new BadImageFormatException(string.Format("MemberRef rid {0} does not exist", rid));
            }
#endif
            this.origRid      = rid;
            this.rid          = rid;
            this.readerModule = readerModule;
            this.module       = readerModule;
            uint @class, name;
            uint signature = readerModule.TablesStream.ReadMemberRefRow(origRid, out @class, out name);
            this.name      = readerModule.StringsStream.ReadNoNull(name);
            this.@class    = readerModule.ResolveMemberRefParent(@class, gpContext);
            this.signature = readerModule.ReadSignature(signature, GetSignatureGenericParamContext(gpContext, this.@class));
        }