コード例 #1
0
        private void WriteTypeToken(ITypeInfo type, MetadataBuilder metadata)
        {
            var token      = metadata.ResolveToken(type);
            var codedToken = CodedTokenSchema.GetCodedToken(token, CodedTokenType.TypeDefOrRef);

            WriteCompressedUInt32(codedToken.Value);
        }
コード例 #2
0
        public MetadataToken ReadCodedToken(CodedTokenType tokenType)
        {
            var value      = ReadBySize(IsLargeToken(tokenType));
            var codedToken = new CodedToken(value);

            return(CodedTokenSchema.GetMetadataToken(codedToken, tokenType));
        }
コード例 #3
0
 public TableHeap(MetadataHeaps heaps, byte[] buffer) : base(buffer, 0x08)
 {
     MoveTo(START_POSITION);
     _heaps        = heaps;
     _tables       = GetMetadataTables();
     _isLargeToken = Func.Memoize <CodedTokenType, bool>(type => CodedTokenSchema.IsLargeToken(type, this));
 }
コード例 #4
0
        private MetadataToken ReadTypeToken()
        {
            var codedToken = new CodedToken(ReadCompressedUInt32());

            return(CodedTokenSchema.GetMetadataToken(codedToken, CodedTokenType.TypeDefOrRef));
        }
コード例 #5
0
 public TableHeap(MetadataHeaps heaps) : base(Empty <byte> .Array, 0x08)
 {
     _heaps        = heaps;
     _tables       = new IMetadataTable[TABLES_COUNT];
     _isLargeToken = Func.Memoize <CodedTokenType, bool>(type => CodedTokenSchema.IsLargeToken(type, this));
 }
コード例 #6
0
        public void WriteCodedToken(MetadataToken token, CodedTokenType tokenType)
        {
            var codedToken = CodedTokenSchema.GetCodedToken(token, tokenType);

            WriteBySize(codedToken.Value, IsLargeToken(tokenType));
        }