コード例 #1
0
        /// <inheritdoc />
        protected override ITypeDefOrRef GetBaseType()
        {
            if (_row.Extends == 0)
            {
                return(null);
            }

            var decoder = _parentModule.DotNetDirectory.Metadata
                          .GetStream <TablesStream>()
                          .GetIndexEncoder(CodedIndex.TypeDefOrRef);

            var token = decoder.DecodeIndex(_row.Extends);

            return((ITypeDefOrRef)_parentModule.LookupMember(token));
        }
コード例 #2
0
        /// <inheritdoc />
        protected override IList <GenericParameterConstraint> GetConstraints()
        {
            var result = new OwnedCollection <GenericParameter, GenericParameterConstraint>(this);

            foreach (uint rid in _parentModule.GetGenericParameterConstraints(MetadataToken))
            {
                var constraintToken = new MetadataToken(TableIndex.GenericParamConstraint, rid);
                result.Add((GenericParameterConstraint)_parentModule.LookupMember(constraintToken));
            }

            return(result);
        }
        /// <inheritdoc />
        protected override IList <MethodSemantics> GetSemantics()
        {
            var result = new MethodSemanticsCollection(this);

            result.ValidateMembership = false;

            foreach (uint rid in _parentModule.GetMethodSemantics(MetadataToken))
            {
                var semanticsToken = new MetadataToken(TableIndex.MethodSemantics, rid);
                result.Add((MethodSemantics)_parentModule.LookupMember(semanticsToken));
            }

            result.ValidateMembership = true;
            return(result);
        }