public void RowEnumerationTest() { var rawRow = new uint[] { 0x0009, 0x0195, 0x0001 }; var row = new MemberReferenceRow(rawRow[0], rawRow[1], rawRow[2]); RowTestUtils.VerifyRowColumnEnumeration(rawRow, row); }
/// <summary> /// Creates a member reference from a member reference metadata row. /// </summary> /// <param name="parentModule">The module that contains the reference.</param> /// <param name="token">The token to initialize the reference for.</param> /// <param name="row">The metadata table row to base the member reference on.</param> public SerializedMemberReference(SerializedModuleDefinition parentModule, MetadataToken token, MemberReferenceRow row) : base(token) { _parentModule = parentModule ?? throw new ArgumentNullException(nameof(parentModule)); _row = row; }
/// <inheritdoc /> public MetadataToken GetMemberReferenceToken(MemberReference member) { AssertIsImported(member); var table = Metadata.TablesStream.GetTable <MemberReferenceRow>(TableIndex.MemberRef); var row = new MemberReferenceRow( AddMemberRefParent(member.Parent), Metadata.StringsStream.GetStringIndex(member.Name), Metadata.BlobStream.GetBlobIndex(this, member.Signature)); var token = table.Add(row); AddCustomAttributes(token, member); return(token); }
/// <inheritdoc /> public MetadataToken GetMemberReferenceToken(MemberReference member) { if (!AssertIsImported(member)) { return(MetadataToken.Zero); } var table = Metadata.TablesStream.GetTable <MemberReferenceRow>(TableIndex.MemberRef); var row = new MemberReferenceRow( AddMemberRefParent(member.Parent), Metadata.StringsStream.GetStringIndex(member.Name), Metadata.BlobStream.GetBlobIndex(this, member.Signature, DiagnosticBag)); var token = table.Add(row); _tokenMapping.Register(member, token); AddCustomAttributes(token, member); return(token); }