void Initialize() { method.ReadOriginalValue = () => { InitializeRawRow(); return(readerModule.ResolveMethodDefOrRef(rawRow.Method)); }; instantiation.ReadOriginalValue = () => { InitializeRawRow(); return(readerModule.ReadSignature(rawRow.Instantiation)); }; }
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 }
/// <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); }