Ejemplo n.º 1
0
        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;
 }
Ejemplo n.º 3
0
        /// <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);
        }