void Initialize()
 {
     method.ReadOriginalValue = () => {
         InitializeRawRow();
         return(readerModule.ResolveMethodDefOrRef(rawRow.Method));
     };
     instantiation.ReadOriginalValue = () => {
         InitializeRawRow();
         return(readerModule.ReadSignature(rawRow.Instantiation));
     };
 }
Beispiel #2
0
        void Initialize()
        {
            method.ReadOriginalValue = () => {
                InitializeRawRow_NoLock();
                return(readerModule.ResolveMethodDefOrRef(rawRow.Method));
            };
            instantiation.ReadOriginalValue = () => {
                InitializeRawRow_NoLock();
                return(readerModule.ReadSignature(rawRow.Instantiation));
            };
#if THREAD_SAFE
            method.Lock        = theLock;
            instantiation.Lock = theLock;
#endif
        }
Beispiel #3
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="readerModule">The module which contains this <c>MethodSpec</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 MethodSpecMD(ModuleDefMD readerModule, uint rid, GenericParamContext gpContext)
        {
#if DEBUG
            if (readerModule == null)
            {
                throw new ArgumentNullException("readerModule");
            }
            if (readerModule.TablesStream.MethodSpecTable.IsInvalidRID(rid))
            {
                throw new BadImageFormatException(string.Format("MethodSpec rid {0} does not exist", rid));
            }
#endif
            this.origRid      = rid;
            this.rid          = rid;
            this.readerModule = readerModule;
            uint method;
            uint instantiation = readerModule.TablesStream.ReadMethodSpecRow(origRid, out method);
            this.method        = readerModule.ResolveMethodDefOrRef(method, gpContext);
            this.instantiation = readerModule.ReadSignature(instantiation, gpContext);
        }