/// <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); }
/// <summary> /// Constructor /// </summary> /// <param name="readerModule">The module which contains this <c>Param</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 ParamDefMD(ModuleDefMD readerModule, uint rid) { #if DEBUG if (readerModule == null) throw new ArgumentNullException("readerModule"); if (readerModule.TablesStream.ParamTable.IsInvalidRID(rid)) throw new BadImageFormatException(string.Format("Param rid {0} does not exist", rid)); #endif this.origRid = rid; this.rid = rid; this.readerModule = readerModule; uint name = readerModule.TablesStream.ReadParamRow(origRid, out this.attributes, out this.sequence); this.name = readerModule.StringsStream.ReadNoNull(name); this.declaringMethod = readerModule.GetOwner(this); }