Beispiel #1
0
        private void WriteSubTypeInfo(TypeReference typeDefinition, TinyBinaryWriter writer)
        {
            UInt16 referenceId;

            if (typeDefinition is TypeSpecification &&
                _context.TypeSpecificationsTable.TryGetTypeReferenceId(typeDefinition, out referenceId))
            {
                writer.WriteMetadataToken(((UInt32)referenceId << 2) | 0x04);
            }
            else if (_context.TypeReferencesTable.TryGetTypeReferenceId(typeDefinition, out referenceId))
            {
                writer.WriteMetadataToken(((UInt32)referenceId << 2) | 0x01);
            }
            else if (_context.TypeDefinitionTable.TryGetTypeReferenceId(
                         typeDefinition.Resolve(), out referenceId))
            {
                writer.WriteMetadataToken((UInt32)referenceId << 2);
            }
        }