Header menu logo F# Compiler Guide

ILNestedExportedType Type

"Classes Elsewhere" - classes in auxiliary modules. Manifests include declarations for all the classes in an assembly, regardless of which module they are in. The ".class extern" construct describes so-called exported types -- these are public classes defined in the auxiliary modules of this assembly, i.e. modules other than the manifest-carrying module. For example, if you have a two-module assembly (A.DLL and B.DLL), and the manifest resides in the A.DLL, then in the manifest all the public classes declared in B.DLL should be defined as exported types, i.e., as ".class extern". The public classes defined in A.DLL should not be defined as ".class extern" -- they are already available in the manifest-carrying module. The union of all public classes defined in the manifest-carrying module and all exported types defined there is the set of all classes exposed by this assembly. Thus, by analysing the metadata of the manifest-carrying module of an assembly, you can identify all the classes exposed by this assembly, and where to find them. Nested classes found in external modules should also be located in this table, suitably nested inside another "ILExportedTypeOrForwarder" definition. these are only found in the "Nested" field of ILExportedTypeOrForwarder objects

Record fields

Record Field Description

Access

Full Usage: Access

Field type: ILMemberAccess
Field type: ILMemberAccess

CustomAttrsStored

Full Usage: CustomAttrsStored

Field type: ILAttributesStored
Field type: ILAttributesStored

MetadataIndex

Full Usage: MetadataIndex

Field type: int32
Field type: int32

Name

Full Usage: Name

Field type: string
Field type: string

Nested

Full Usage: Nested

Field type: ILNestedExportedTypes

Instance members

Instance member Description

this.CustomAttrs

Full Usage: this.CustomAttrs

Returns: ILAttributes
Returns: ILAttributes

Type something to start searching.